12

我正在尝试在 Googlemap v2 上获取纬度和经度。我已经使用代码为 mapragment 对象设置了 onclick 侦听器

 map.setOnMapClickListener(new OnMapClickListener() {

    @Override
    public void onMapClick(LatLng latln) {
        // TODO Auto-generated method stub


        String s=latln.toString();

        Log.w("dsfdsf",""+s);

    }
});

它以 lat/lng 格式提供纬度和经度坐标:(xx.xxxxxx,yy.yyyyy) 我需要获取纬度和经度数据的确切方法。我不想使用 split 解析数据并获取坐标..

4

5 回答 5

34

这可以在Google Maps API 参考中轻松找到:

公共最终类 LatLng

公共最终双纬

纬度,以度为单位。该值在 [-90, 90] 范围内。

公共最终双经度

经度,以度为单位。该值在 [-180, 180) 范围内。

因此,在您的示例中,您应该调用:

double lat = latlng.latitude;
double lng = latlng.longitude;
于 2013-03-07T07:47:25.737 回答
1
var res = results1[key][key1].toString().split("(");
console.log(" latlong::"+res);
var res2= res[1].split(",");
console.log(" latlong::"+res2);
latlongFrom[0]=res2[0];
console.log(" latlong::"+latlongFrom[0]);
var res3=res2[1].split(")");
console.log(" latlong::"+res3[0]);
latlongFrom[1]=res3[0];
console.log(" latlong::"+latlongFrom[1]);

这就是我所做的。res 包含 (lat,long) 的值。

于 2014-04-02T13:20:41.833 回答
0

要获得纬度和经度,您必须声明 2 个双变量。

map.setOnMapClickListener(new OnMapClickListener() {

    @Override
    public void onMapClick(LatLng latln) {
        double latitude, longitude;
        latitude(latln.latitude);
        longitude(latln.longitude);

    }
});
于 2016-09-20T22:22:32.740 回答
0

对于较新的版本,请使用:

double lat = latlng.lat;
double lng = latlng.lng;

as latlng.latitudeand latlng.longitudeor latlng.lat()andlatlng.lng()会产生编译错误。

于 2018-03-04T18:52:17.917 回答
-1

这是Android解决方案

public void onMapClick(LatLng latln) {
    String s = latln.toString();
    String[] latLng = s.substring(10, s.length() - 1).split(",");
    String sLat = latLng[0];
    String sLng = latLng[1];
    Toast.makeText(MapsActivity.this, "Latitude is: "+sLat+", Longtitude is: "+sLng, Toast.LENGTH_LONG).show();
}
于 2016-09-19T13:51:03.517 回答