在Android中,打开谷歌地图以显示多个标记

时间:2014-04-09 00:05:05

标签: android google-maps google-maps-markers

我有几个带有JSON格式描述的标记(但我可以使用另一个)。我如何从Android应用程序中的谷歌地图(v2)中打开它?

数据示例:

[
   {
      "name":"Ice Cream Daydream",
      "description":"OTR;33 E 12th St,</div>Cincinnati, OH 45202<br><img src=",
      "lon":-84.513634,
      "lat":39.108456,
      "tour":"otr",
      "image":""
   },
   {
      "name":"Into the Renaissance",
      "description":"OTR;1519 Vine St,</div>Cincinnati, OH 45202<br><img src=",
      "lon":-84.516068,
      "lat":39.11235,
      "tour":"otr",
      "image":""
   },
   {
      "name":"Know Theater Murals",
      "description":"OTR; </div>1120 Jackson St,Cincinnati, OH 45202<br><img src=",
      "lon":-84.513672,
      "lat":39.108154,
      "tour":"otr",
      "image":""
   }
]

1 个答案:

答案 0 :(得分:0)

在XML文件中

 <FrameLayout
    android:id="@+id/mapContainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

在Java文件中

FrameLayout mapContainer = (FrameLayout) findViewById(R.id.mapContainer);
FragmentManager fm = getFragmentManager();
MapFragment mapFragment = MapFragment.newInstance();
fm.beginTransaction().replace(R.id.mapContainer, mapFragment).commit();

mapFragment.getMapAsync(new OnMapReadyCallback() {
             @Override
             public void onMapReady(GoogleMap googleMap) {
                    GoogleMap  mMap = googleMap;
                    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                    addMarks(mMap);
                });
            }

添加多个标记

 private void addMarks(GoogleMap googleMap) {
    LatLngBounds.Builder builder = new LatLngBounds.Builder();
    for (int i = 0; i < list.size(); i++) {
            LatLng latLng = new LatLng(latitute, longitute);
            builder.include(latLng);
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(latLng);
            markerOptions.title(storeLocation);
    }

}