2016-03-15 77 views
3

JSON响应:从JSON响应谷歌地图上添加多个标记

{"status":true,"message":"Successfully Alert Message","Data":[{"longitude":"70.7652417","latitude":"22.2889975","alert_message":"abcd"},{"longitude":"70.7652417","latitude":"22.2888975","alert_message":"pqr",},{longitude":"70.7662417","latitude":"22.2898975","alert_message":"xyz"}]} 

我做了什么:

arraylist = parseContent.getUsers(response); 
adapter = new ListViewAdapter(getApplicationContext(), arraylist); 
Log.d("typelist", arraylist.toString()); 
lv.setAdapter(adapter); 

for (int i =0;i<arraylist.size();i++) 
{ 
    longitude1 = arraylist.get(i).get("longitude"); 
    latitude1 = arraylist.get(i).get("latitude"); 

    // MarkerOptions mp = new MarkerOptions(); 

    Double long1= Double.parseDouble(longitude1); 
    Double lat1= Double.parseDouble(latitude1); 

    /* mp.position(new LatLng(long1,lat1)); 
    mp.title("my position"); 
    googleMap.addMarker(mp);*/ 
    /* Marker marker = googleMap.addMarker(new MarkerOptions() 
     .position(new LatLng(long1, lat1)) 
     .title("Hello world") 
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.flag)));*/ 
    // marker.add(marker); 
    // arraylist.add(marker); 
    // googleMap.addMarker(marker); 

    googleMap.addMarker(new MarkerOptions().position(new LatLng(long1, lat1))); 
    Log.e("PlaceLL",lat1+" "+long1); 
} 

纬度和经度我得到:

LL: 22.2889975 70.7652417 
LL: 22.2888975 70.7652417 
LL: 22.2898975 70.7662417 

我希望在我的JSON响应中将多个标记与地图名称放在Google地图上。但我无法放置标记。

回答

2

尝试的几行代码为它: -

private Marker locationMarker; 

for (int i = 0; i < arraylist.size(); i++) 
{ 
    if(i==0) ////FOR ANIMATING THE CAMERA FOCUS FIRST TIME ON THE GOOGLE MAP 
    { 
    CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(Double.parseDouble(arraylist.get(i).getLatitute()), Double.parseDouble(arraylist.get(i).getLongitute()))).zoom(15).build(); 
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
    } 

    locationMarker = googleMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(arraylist.get(i).getLatitute()), Double.parseDouble(arraylist.get(i).getLongitute()))).icon(BitmapDescriptorFactory.fromResource(R.drawable.YOUR_DRAWABLE))); 


    } 
0

可能需要这些东西, 使用方法,

private void drawMarker(LatLng point){ 
    // Creating an instance of MarkerOptions 
    MarkerOptions markerOptions = new MarkerOptions(); 

    // Setting latitude and longitude for the marker 
    markerOptions.position(point); 

    // Adding marker on the Google Map 
    googleMap.addMarker(markerOptions); 
} 

以及调用这些方法,得到纬度和经度从JSON每个

drawMarker(new LatLng(Double.parseDouble(lat), Double.parseDouble(lng))); 
+0

u能告诉我如何添加地名和自定义标记 – Risk

+0

markerOptions.position(点).title伪(“地名”); – PpL

+0

为地址名称,地址为 markerOptions.position(point).title(“地点名称”).snippet(“Full Address”); – PpL

0

后,如果我是正确的,你的评论代码必须像下面一样正常工作。

对于你每次循环,

map.addMarker(new MarkerOptions() 
    .position(new LatLng(lat, long)) 
    .title(title)) 
    .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 

这是你如何为标记添加标题和自定义图标(fromResource/fomFile/...),你可以使用甚至拼合图像.flat(true)