Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 谷歌地图v2安卓-如何阻止用户将标记放置在地图边界之外?_Android_Google Maps - Fatal编程技术网

Android 谷歌地图v2安卓-如何阻止用户将标记放置在地图边界之外?

Android 谷歌地图v2安卓-如何阻止用户将标记放置在地图边界之外?,android,google-maps,Android,Google Maps,我正在使用GMS的谷歌地图创建一个类似GeoGuessr的Android应用程序,但用户通知我,如果你在地图顶部或底部边界之外(在“方格”区域)放置一个标记,它会设置一个距离实际位置约150公里的纬度 我不想限制实际播放,因此理想情况下,我希望设置一个用户无法放置标记的边界 我尝试在地图中使用边界,结果如下: LatLng ne = new LatLng(85, 180); LatLng sw = new LatLng(-85, -180); LatLngBounds B

我正在使用GMS的谷歌地图创建一个类似GeoGuessr的Android应用程序,但用户通知我,如果你在地图顶部或底部边界之外(在“方格”区域)放置一个标记,它会设置一个距离实际位置约150公里的纬度

我不想限制实际播放,因此理想情况下,我希望设置一个用户无法放置标记的边界 我尝试在地图中使用边界,结果如下:

LatLng ne = new LatLng(85, 180);           
LatLng sw = new LatLng(-85, -180);

LatLngBounds Bounds = new LatLngBounds(sw,ne);
这一次每次都会导致越界

LatLngBounds Bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
new LatLngBounds(sw,ne);
这一次没有改变,大概是因为它设置了相同的边界(mMap是当前初始化的映射)

举个例子,下面是我的意思的截图:


你知道我能做什么吗?

在行星和其他球形物体的表面上,180和180是一样的。您需要计算一个比180小“一位”的值

double smallerThan180 = Double.longBitsToDouble(Double.doubleToLongBits(180.0) - 1);
LatLng southWest = new LatLng(-85.0, -180.0);
LatLng northEast = new LatLng(85.0, smallerThan180);
LatLngBounds boundsOfDrawnWorld = new LatLngBounds(southWest, northEast);
不管怎样,你为什么不检查纬度的值呢

if (-85.0 <= somePoint.latitude && somePoint.latitude <= 85.0) {
    // ...
}

if(-85.0)这是一个梦想。使用第一个建议并使用boundsOfDrawnWorld.contains(点)检查它是否在范围内,问题就解决了