如何在Google地图上显示多个位置?

时间:2016-02-13 19:02:17

标签: android google-maps android-intent

我必须在原生谷歌地图应用程序上显示多个位置(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);

请建议如何进行必要的更改。

谢谢:)

2 个答案:

答案 0 :(得分:0)

根据this判断,这是不可能的。此问题还与this重复。

答案 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);
}

希望这会有所帮助!!