0
我的Android上有一個Google地圖,我是新的Google Maps API的新手。它上面有一個初始標記。 這是顯示地圖和初始標記方法:是否可以從AsyncTask添加標記?
@Override
public void onMapReady(GoogleMap map) {
//map is ready
// latitude and longitude
double latitude = latitud_del_hotel;
double longitude =longitud_del_hotel;
// create marker
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title(nombre_del_hotel).icon(BitmapDescriptorFactory.fromResource(R.drawable.poi));
// Changing marker icon
// marker.icon(BitmapDescriptorFactory
// .defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
// adding marker
map.addMarker(marker);
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(latitud_del_hotel, longitud_del_hotel)).zoom(15).build();
map.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
}
現在,我需要把其他標記就可以了。這些標記是JSON對象,我從活動的另一個方法檢索。
可能是我的問題很愚蠢,但我不知道如何在同一個地圖上添加標記,但是在另一個方法上創建標記。
這就是爲什麼我在創造另一種方法一個新的標誌:
hotel.setNombre(obj.getString("nombre_hotel"));
hotel.setLatitud(obj.getDouble("latitud_hotel"));
hotel.setLongitud(obj.getDouble("longitud_hotel"));
hotel.setDireccion(obj.getString("direccion_hotel"));
String nombre = obj.optString("nombre_hotel");
Log.d("NOMBRE=", nombre);
String latitud = obj.optString("latitud_hotel");
double latitud_del_hotel = Double.parseDouble(latitud);
String longitud = obj.optString("longitud_hotel");
double longitud_del_hotel = Double.parseDouble(longitud);
// create marker
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitud_del_hotel, longitud_del_hotel)).title(nombre).icon(BitmapDescriptorFactory.fromResource(R.drawable.poi));
map.addMarker(marker);
但很明顯,該行map.addMarker(marker);
顯示警告:無法解析符號映射。
對不起,如果它很容易解決,但我不能。
謝謝。
感謝@jyanks,地圖在onCreateView方法創建的JSON調用在onCreateView上創建。 – mvasco
是的,所以你需要在volley調用返回後onMapReady完成時捕獲MarkerOptions。 – jyanks
我應該如何首先定義googleMap? – mvasco