2014-04-09 52 views
0

我有幾個標記與JSON格式的描述(但我可以使用另一個)。我將如何在我的Android應用程序中的谷歌地圖(V2)中打開此項?數據在Android中,打開谷歌地圖顯示多個標記

例子:

[ 
    { 
     "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":"" 
    } 
] 
+0

對於Google地圖...請訪問:https://developers.google.com/maps/documentation/android/intro 添加標記:https://developers.google.com/maps/documentation/android/marker –

+0

這些有助於在一個視圖中添加多個視圖嗎? – LisaH

+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); 
//show map of 40% of screen 
DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.MATCH_PARENT); 
    params.height = (int) ((float) dm.heightPixels * (float) 0.4); 
    mapContainer.setLayoutParams(params); 
    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); 
    } 

}