我正在尝试获取Google地图上标记的当前位置,但它只返回原来设置的位置,而不是将其拖动到我想要的位置。
private Marker _marker;
private LatLng latLng = new LatLng(0, 0);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// save button
Button save = (Button)findViewById(R.id.saveBtn);
// if save button is pressed
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// get marker position (lat, long)
double lLat = _marker.getPosition().latitude;
double lLong = _marker.getPosition().longitude;
Toast.makeText(
AddLocation.this,
"Lat: " + lLat + ", " + "Long: " + lLong,
Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
_mMap = googleMap;
_marker = _mMap.addMarker(new MarkerOptions().position(new LatLng(latLng .getLatitude(), latLng .getLongitude())).draggable(true));
}
答案 0 :(得分:0)
你应该看看谷歌参考https://developers.google.com/maps/documentation/android-api/marker#marker_drag_events
并设置setOnMarkerDragListener
答案 1 :(得分:0)
我在我的项目标记中使用这种方式
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latLng.latitude, latLng.longitude)).title("New Marker");
marker.draggable(true);
markerNum = mMap.addMarker(marker);
markerList.add(markerNum);
mMap.addMarker(marker);
latitudeIntent = latLng.latitude;
longitudeIntent = latLng.longitude;
callIntent(latitudeIntent, longitudeIntent);
Log.d("markerPoint", String.valueOf(latitudeIntent));
Log.d("markerPoingLng", String.valueOf(longitudeIntent));
markerPoint = new LatLng(latitudeIntent, longitudeIntent);
mMyMarkersArray.add(markerPoint);
}
});