Получить долготу и широту маркера на картах Google Android

В моем приложении пользователь может onLongClick добавить маркер на карты Google. Он сохраняет эти координаты как точку. Я знаю, что с location = location.getLastKnownLocation можно использовать методы getLongitude() и getLatitude(). Есть ли способ сделать это с помощью маркера, размещенного пользователем на картах Google, чтобы можно было получить координаты. Это код, который получает точку маркера и сохраняет ее.

public void onMapLongClick(LatLng point) {
    tvLocInfo.setText("New marker added@" + point.toString());             map.addMarker(new MarkerOptions().position(point).title(point.toString())); 
pointfinal = point;
Toast.makeText(this, point.toString(), Toast.LENGTH_LONG).show();
}

person Andrew Stewart    schedule 12.05.2014    source источник
comment
Не уверен, что именно вы спрашиваете. Я предполагаю, что вы ищете getLongitude() getLatitude() для маркера, который был добавлен на карту, верно? Если это так, точка LatLng уже доступна для использования.   -  person JustWe    schedule 13.05.2014


Ответы (2)


Попробуй это:

public void onMapLongClick(LatLng point) {
    tvLocInfo.setText("New marker added@" + point.toString());        
    //Create a marker object
    Marker myMarker = map.addMarker(new MarkerOptions().position(point).title(point.toString()));

    //And now you can use it's values
    myMarker.getPosition().latitude;
    myMarker.getPosition().longitude;
}

Если у вас есть несколько маркеров, вы можете использовать массив для их хранения.

person Carlos J    schedule 12.05.2014
comment
JustWe, вы имеете в виду point.latitude и point.longitude? CarlosJiminez получает ошибку AssignmentOperatorExpression в этих строках myMarker.getPosition().latitude; myMarker.getPosition().longitude; - person Andrew Stewart; 13.05.2014
comment
Именно то, что я имел в виду. переменная точки имеет все, что вам нужно здесь - person JustWe; 13.05.2014

См. эту ссылку

Это говорит

map.setOnInfoWindowClickListener(
    new OnInfoWindowClickListener(){
    @Override
    public void onInfoWindowClick(Marker arg0) {

        // TODO Auto-generated method stub
        arg0.hideInfoWindow();
        double dlat =arg0.getPosition().latitude;
        double dlon =arg0.getPosition().longitude;
        String slat = String.valueOf(dlat);
        String slon = String.valueOf(dlon);
        Log.d("Position","Lat:"+slat+",Lon:"+slon);  
    }
});
person Lal    schedule 13.05.2014