城市范围内的限制标记 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
我有一个需求,在 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