0

因此,我将地图中的标记存储到 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

4

1 回答 1

1

在 Java 和您将遇到的大多数其他语言中,double不会存储为精确值。

你可以在这里阅读更多。

此外,您发布的位置彼此非常接近并不重要。

于 2013-06-21T02:06:32.033 回答