在我的Android应用程序中,我使用 Google Map 指向某些位置。但我标记为 纬度 和 经度 的值与点击<时所获得的值不同强>标记即可。这是相关代码
import com.google.android.gms.maps.GoogleMap;
public class MyClass extends SupportMapFragment{
private GoogleMap mMap;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mMap = getMap();
myMethod();
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
LatLng latLng = marker.getPosition();
Log.d(TAG, "# latLng.latitude : " + latLng.latitude + " # latLng.longitude : " + latLng.longitude);
/*
* Print for the above Log statement is
*
* # latLng.latitude : 45.446733371796135 # latLng.longitude : 6.97720717638731
*
*/
}
}
}
private void myMethod(){
MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(coords.getDouble(1), coords.getDouble(0)));
Log.d(TAG, "# latitude : " + coords.getDouble(1) + " # longitude : " + coords.getDouble(0));
/*
* Print for the above Log statement is
*
* # latitude : 45.44673337246575 # longitude : 6.977207233013699
*
*/
}
}
这些打印值几乎与 相同,但不完全相同 。我能知道为什么吗?因为当我点击特定标记时,我需要获得我正在为地图提供的确切值。如果是因为我如何将值包含在Map中,我应该如何更改它?
答案 0 :(得分:0)
这听起来像这里的错误:
https://code.google.com/p/gmaps-api-issues/issues/detail?id=5353
正如一位评论员所指出的那样,LatLng正在被展平为浮动,当它们再次检索它们时,它们会失去精确度。
我发现将lat / lngs变成字符串并在比较它们之前除去前8个字符之外的所有内容似乎都有效:
String lat1 = String.valueOf(marker.latitude).substring(0, 8);