如何从我在地图上设置的标记保存经度和纬度
How to save longitude and latitude from the marker i set on the map
我知道如何根据坐标设置位置,当地图 activity 启动时它会跳转到那些坐标,但我希望用户能够在地图上设置标记并将坐标保存到一些变量,但我不知道该怎么做。请给我指明正确的方向。
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions()
.position(sydney)
.title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
添加了一些图片以完整查看我的代码。对不起,我对这个地图东西真的很陌生。每条评论都会帮助我了解更多。
为您的activity
设置一个全局变量
private LatLng myLatLng;
接下来,您需要为您的地图设置标记拖动侦听器
map.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
myLatLng = marker.getPosition();
}
});
如果您想将标记保存为变量...
private Marker myMarker;
private LatLng myLatLng;
myMarker = mMap.addMarker(new MarkerOptions()
.position(sydney)
.title("Marker in Sydney"));
myLatLng = myMarker.getPosition();
只需将最后一行替换为
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15));
首先在地图上添加标记
private void setUpMap()
{
.......
googleMap.setOnMarkerClickListener(this);
myMarker = googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title("My Spot")
.snippet("This is my spot!")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
......
}
然后 使用此代码获取标记位置
@Override
public void onMarkerDragEnd(Marker marker) {
// TODO Auto-generated method stub
Toast.makeText(
MainActivity.this,
"Lat " + map.getMyLocation().getLatitude() + " "
+ "Long " + map.getMyLocation().getLongitude(),
Toast.LENGTH_LONG).show();
System.out.println("yalla b2a "
+ map.getMyLocation().getLatitude());
}
我知道如何根据坐标设置位置,当地图 activity 启动时它会跳转到那些坐标,但我希望用户能够在地图上设置标记并将坐标保存到一些变量,但我不知道该怎么做。请给我指明正确的方向。
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions()
.position(sydney)
.title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
添加了一些图片以完整查看我的代码。对不起,我对这个地图东西真的很陌生。每条评论都会帮助我了解更多。
为您的activity
设置一个全局变量private LatLng myLatLng;
接下来,您需要为您的地图设置标记拖动侦听器
map.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
myLatLng = marker.getPosition();
}
});
如果您想将标记保存为变量...
private Marker myMarker;
private LatLng myLatLng;
myMarker = mMap.addMarker(new MarkerOptions()
.position(sydney)
.title("Marker in Sydney"));
myLatLng = myMarker.getPosition();
只需将最后一行替换为
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15));
首先在地图上添加标记
private void setUpMap()
{
.......
googleMap.setOnMarkerClickListener(this);
myMarker = googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title("My Spot")
.snippet("This is my spot!")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
......
}
然后 使用此代码获取标记位置
@Override
public void onMarkerDragEnd(Marker marker) {
// TODO Auto-generated method stub
Toast.makeText(
MainActivity.this,
"Lat " + map.getMyLocation().getLatitude() + " "
+ "Long " + map.getMyLocation().getLongitude(),
Toast.LENGTH_LONG).show();
System.out.println("yalla b2a "
+ map.getMyLocation().getLatitude());
}