地图标记未指向确切位置
Posted
技术标签:
【中文标题】地图标记未指向确切位置【英文标题】:Map marker doesn't point to exact location 【发布时间】:2013-06-21 01:56:51 【问题描述】:所以我将地图中的标记存储到 sqlite 数据库中。我正在尝试按纬度和经度查询标记。因此,为了进行测试,我将标记添加到特定位置。当我检查标记位置时,它给了我另一个位置。这是什么原因造成的?
private void drawMarker(LatLng point, String title, String snippet)
// Creating an instance of MarkerOptions
MarkerOptions markerOptions = new MarkerOptions();
// Setting latitude and longitude for the marker
LatLng l = new LatLng(37.52100000000001, -77.44800000000001);
markerOptions.position(l);
markerOptions.title(title);
markerOptions.snippet(snippet);
// Adding marker on the Google Map
googleMap.addMarker(markerOptions);
这是提取标记位置的代码
googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener()
@Override
public void onInfoWindowClick(Marker marker)
marker1 = marker;
LatLng mlatlong = marker1.getPosition();
markerLat = Double.toString(mlatlong.latitude);
markerLng = Double.toString(mlatlong.longitude);
latitude = mlatlong.latitude;
longitude = mlatlong.longitude;
Log.i("Marker", mlatlong.latitude +","+mlatlong.longitude);
markerDialog();
);
这给了我位置 06-20 21:53:52.447: I/Marker(15221): 37.52100000569583,-77.44800008833408
【问题讨论】:
如果你打印 LatLng l = new LatLng(37.52100000000001, -77.44800000000001); 你会看到什么? 嗨,David,您找到从标记中获取准确 LatLng 值的解决方案了吗?我也有同样的问题。 到目前为止,它已经足够接近我的需要了。我只是好奇为什么会这样。所以要回答你的问题,不,我还没有找到解决方案。 还是谢谢你。这对我来说还不够,因为我需要准确地比较位置。我对这个“”“”错误“”“”感到非常恼火。我会继续寻找...... 【参考方案1】:在 Java 和您会遇到的大多数其他语言中,double
不会存储为精确值。
您可以阅读更多here。
此外,您发布的位置是extremely close to each other 并不重要。
【讨论】:
我没有注意到位置有任何变化。当我向我的 sqlite 查询该确切位置时,问题就来了。它没有找到它,因为它保存为我告诉它的确切位置。 我会避免这样做并使用某种密钥或其他标识符。 我考虑过查询标题,但用户可能会为多个标记使用相同的标题。以上是关于地图标记未指向确切位置的主要内容,如果未能解决你的问题,请参考以下文章