Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
城市范围内的限制标记android谷歌地图_Android_Android Studio_Google Maps_Google Maps Markers_Geojson - Fatal编程技术网

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

城市范围内的限制标记android谷歌地图,android,android-studio,google-maps,google-maps-markers,geojson,Android,Android Studio,Google Maps,Google Maps Markers,Geojson,我有一个要求,在谷歌地图安卓系统中,点击城市范围内的地图时应该放置一个标记。如果用户点击城市范围以外的地图。需要显示一个警告。我知道点击地图可以添加标记,但如何将其限制在城市范围内?我试图探索GeoJson的概念,在我的地图上添加一层,但我不确定这会有什么帮助。如有任何建议,我们将不胜感激。谢谢您应该在希望用户选择的区域周围创建一个地理围栏。然后你可以评估它是否在城市边界内 在城市周围有一个10000米的地理围栏,如果用户点击地图,发现它不在地理围栏内,则取消请求,但如果它在边界内,则创建一个标

我有一个要求,在谷歌地图安卓系统中,点击城市范围内的地图时应该放置一个标记。如果用户点击城市范围以外的地图。需要显示一个警告。我知道点击地图可以添加标记,但如何将其限制在城市范围内?我试图探索GeoJson的概念,在我的地图上添加一层,但我不确定这会有什么帮助。如有任何建议,我们将不胜感激。谢谢

您应该在希望用户选择的区域周围创建一个地理围栏。然后你可以评估它是否在城市边界内

在城市周围有一个10000米的地理围栏,如果用户点击地图,发现它不在地理围栏内,则取消请求,但如果它在边界内,则创建一个标记,基于此,我可以获取特定城市的多边形。这些值存储到DB中,并使用API获取。API返回一个城市的平面边界,使用它我可以画一个城市形状的多边形

val polygon = googleMaps?.addPolygon(PolygonOptions()
            .addAll(cityLimit)) // cityLimit LatLng list of City Boundary
    polygon?.isClickable = false
    polygon?.strokeWidth = 2f
然后在mapplick中,我添加了以下条件

    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的类库。这解决了我的问题。有关更多详细信息,请检查此项

好的,您可以检查lat、long来自哪个城市,然后您可以比较您想要限制的各个城市是否相同,或者发出警告。参考:是否可以使用GeoJSON和restrict marker为城市绘制图层?我们可以在地图上为该城市绘制多段线,为此我们需要多个latlong。我会查一下我们可以得到城市边界的位置吗?你能查一下吗:这里人们得到的是各自城市的多边形,Geofence在这里帮不上忙。不同的城市有不同的半径。很难找到城市的半径。我正在从MapsSDK中寻找一些内置方法。