【发布时间】:2016-04-18 12:54:06
【问题描述】:
我正在尝试添加一个标记,这一切都取决于用户正在进行的活动。例如,如果用户在 location1 活动中并单击按钮打开地图,它应该打开谷歌地图,并在 location1 所在的位置有一个标记。或者,如果用户在 location2 活动中并单击按钮打开地图,它应该打开 Google 地图,并在位置 2 的位置有一个标记。
当他们点击一项活动时,我让它工作,它将他们带到谷歌地图并在该位置有一个标记。我只是尝试复制代码并将其粘贴到下面,其中包含已编辑的名称,但如果我单击不同的活动以转到地图,它会将我带到与以前相同的标记。
我的 GoogleMapsActivity 代码如下:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
//mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
// Add a marker at the Oval and move the camera
LatLng oval = new LatLng(53.3484013, -6.2605243);
mMap.addMarker(new MarkerOptions().position(oval).title("Oval Pub"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(oval));
/*
// Add a marker at Diceys and move the camera
LatLng diceys = new LatLng(53.3358088,-6.2636688);
mMap.addMarker(new MarkerOptions().position(diceys).title("Diceys Nightclub"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(diceys));
*/
}
public void changeType(View view)
{
if(mMap.getMapType() == GoogleMap.MAP_TYPE_NORMAL)
{
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
}
else
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}}
如您所见,我已经注释掉了我尝试为不同位置添加标记的代码,但它似乎将我带到了与上面相同的位置。
不确定这是否简单,因为我是 Android 中 Google 地图的新手。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
你想要什么?它应该根据以前的活动更改标记,ryt?您可以在调用此 MapsActivity 时简单地输入经度和纬度 extras 。并让它们进入 onCreate。并将其添加为标记。
-
我希望能够单击活动中的按钮,这将打开谷歌地图,这取决于您刚刚单击的按钮所在的活动。因此,activity1 应该将您带到谷歌地图的活动1 被标记。不确定将它们放入 onCreate 并从那里添加为标记是什么意思...
-
点击我发布的答案
-
我怀疑问题在于 onMapReady() 仅在您的第一个活动中被调用,因为它被保留了。您可以通过打印到日志并查看(查看每次单击按钮时是否打印您输入的消息)来检查这一点。如果这是您点击的第一个位置,您会得到第二个位置吗?
标签: android google-maps android-studio google-maps-api-3