我必须在原生谷歌地图应用程序上显示多个位置(MapView未在我们的应用程序中实现).i拥有所有地理点的所有纬度。我如何通过意图在本地谷歌地图应用程序上显示多个点。
我知道使用以下代码在Google地图上显示一个点。
String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);
请建议如何进行必要的更改。
谢谢:)
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以将要在地图中显示的地点的名称从其他活动传递到当前活动,然后实施标记以在地图中显示它们。为此,您必须在当前的活动中实施Google Map,我希望您已经这样做了。 :)
以下代码显示了Google地图上的多个位置:
private void AddMarkers(GoogleMap googleMap)
{
try {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
Geocoder geocoder = new Geocoder(context);
Origin_Map = extras.getString(MainActivity.ORIGIN_MAP);
Destination_Map = extras.getString(MainActivity.DESTINATION_MAP);
Addr_Origin = geocoder.getFromLocationName(Origin_Map, 1);
Addr_Dest = geocoder.getFromLocationName(Destination_Map, 1);
if (Addr_Origin.size() > 0) {
latitude_origin = Addr_Origin.get(0).getLatitude();
longitude_origin = Addr_Origin.get(0).getLongitude();
}
if (Addr_Dest.size() > 0) {
latitude_destination = Addr_Dest.get(0).getLatitude();
longitude_destination = Addr_Dest.get(0).getLongitude();
}
Marker m1 = googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude_origin, longitude_origin)).title(Origin_Map).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));
Marker m2 = googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude_destination, longitude_destination)).title(Destination_Map).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
} catch (Exception e) {
e.printStackTrace();
}
}
地图准备就绪后调用此方法!
@Override
public void onMapReady(GoogleMap googleMap)
{
AddMarkers(googleMap);
}
希望这会有所帮助!!