.现在我在两个活动中首先从服务器获取响应,然后将 lat , longi 传递给另一个活动,其中 onmapready((; 函数在谷歌地图上显示标记。但我想在一个活动中这样做我该怎么做?
enter code here public void onMapReady(GoogleMap map) {
mMap = map;
refresh(mMap);
}
private void addMarkersToMap() {
// Uses a colored icon.
LatLng sydney = new LatLng(latt, langg);
mMap.addMarker(new MarkerOptions().position(sydney)
.title("")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin)));
// mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney,1));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(sydney)
.zoom(17).build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
private void pointToPosition(LatLng position) {
//Build camera position
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(position)
.zoom(17).build();
//Zoom in and animate the camera.
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
仅在第一个活动的异步任务的 OnPostExecute 中尝试此操作。然后,您不需要其他活动。
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
// other code for get lat-long
loadMap();
}
private void loadMap()
{
LatLng sydney = new LatLng(latt, langg);
mMap.addMarker(new MarkerOptions().position(sydney).title("")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin)));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(sydney)
.zoom(17).build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
}
您可以使用以下方法获取地图
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
map = mapFragment.getMapAsync(NearestActivity.this);
然后,在异步任务的 OnPostExecute 中,使用 map.addMarker(options)
填充地图标记。