城市范围内的限制标记 android Google 地图

Limit Marker within city limit android Google Maps

我有一个需求,在 Google 地图 android.If 用户点击城市范围外的地图时,应将标记放置在点击城市范围内的地图上。需要显示警告。我知道可以在点击地图时添加标记,但我怎样才能将其限制在城市范围内?我尝试探索 GeoJson 的概念以在我的 Map.But 之上添加一层我不确定这会有什么帮助。任何建议表示赞赏。谢谢

您应该在您希望用户访问的区域周围创建地理围栏 select。那你可以评价一下是不是在城市边界内。

在城市周围设置一个像 10000 米这样的地理围栏,如果用户单击地图并发现它不在地理围栏内,则取消请求,但如果在边界内,则创建一个标记

基于此 link 我可以获取特定城市的多边形。这些值存储到数据库中并使用 API 获取。 API returns lat lng 一个城市的边界,使用这个我可以绘制一个城市形状的多边形。

val polygon = googleMaps?.addPolygon(PolygonOptions()
            .addAll(cityLimit)) // cityLimit LatLng list of City Boundary
    polygon?.isClickable = false
    polygon?.strokeWidth = 2f

然后在MapClick上,我添加了如下条件

    override fun onMapClick(latLng: LatLng?) {
        if (!PolyUtil.containsLocation(latLng, cityLimit, false))
            // Show error message "Unable to place marker outside city limit"
    }

PolyUtil 是 Google Maps sdk 的 Class 库。这解决了我的问题。有关详细信息,请查看此 blog