Android 谷歌地图v2安卓-如何阻止用户将标记放置在地图边界之外?
我正在使用GMS的谷歌地图创建一个类似GeoGuessr的Android应用程序,但用户通知我,如果你在地图顶部或底部边界之外(在“方格”区域)放置一个标记,它会设置一个距离实际位置约150公里的纬度 我不想限制实际播放,因此理想情况下,我希望设置一个用户无法放置标记的边界 我尝试在地图中使用边界,结果如下: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
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(点)检查它是否在范围内,问题就解决了