请帮帮我,如何在当前位置设置标记? 在我的代码onCreate,addMarker和createMapView下面。
的onCreate 公共类MapActivity扩展了Activity {
GoogleMap googleMap;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity);
createMapView();
addMarker();
}
addMarker
private void addMarker() {
if (null != googleMap) {
googleMap.addMarker(new MarkerOptions()
.title("Marker")
.position(new LatLng(0, 0))
.draggable(true));
}
}
createMapView
private void createMapView() {
try {
if (null == googleMap) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapView)).getMap();
if (null == googleMap) {
Toast.makeText(getApplicationContext(), "Error creating map", Toast.LENGTH_LONG).show();
}
}
} catch (NullPointerException e) {
Log.e("mapApp", e.toString());
}
}
答案 0 :(得分:2)
您将标记设置为(0,0)
.position(new LatLng(0, 0))
您可以在onLocationChanged获得最新职位。
获取经度和纬度:
new LatLng(location.getLatitude(), location.getLongitude())
使用LatLng对象设置标记。
答案 1 :(得分:0)
从latitude
获取longitude
和FusedLocationApi
位置GoogleApiClient.FusedLocationApi.getLastLocation()
,然后使用这些纬度/经度呼叫addMarker
。
希望这有帮助。
答案 2 :(得分:0)
首先,您需要获得当前的职位 并根据它创建latlng对象,并成功完成latlng 使用这种方法
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, true);
fromPosition = new LatLng(latti, longi);
googleMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.orangedoticon)).title("helo0o0"));
答案 3 :(得分:0)
您必须获取当前位置的lat
和lng
并输入此代码。
@Override
public void onMapReady(GoogleMap map) {
map.addMarker(new MarkerOptions()
.position(new LatLng(10, 10))
.title("Hello world"));
}
https://developers.google.com/maps/documentation/android-api/marker