【问题标题】:how to show multiple marker on google map android如何在谷歌地图android上显示多个标记
【发布时间】:2016-01-09 23:42:16
【问题描述】:

我想在 google maps android 上显示带有多个标记的位置,问题是当我运行我的应用程序时,它只显示一个位置/标记,这是我的代码:

public class koordinatTask extends AsyncTask<String, String, String>
    {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            setProgressBarIndeterminateVisibility(true);
        }

        protected String doInBackground(String... args) {
             String url = "http://absc?action=p04&prov="+link_kode+"&tipe=";
             JSONArray data = null;
            try {
                JSONParser jParser = new JSONParser();
                JSONObject json = jParser.getJSONFromUrl(url);
                // Getting Array of data
                data = json.getJSONArray(real_data);
                System.out.println("realisasi done");

                for(int i = 0; i < data.length(); i++){
                    JSONObject c = data.getJSONObject(i);
                    HashMap<String, String> map = new HashMap<String, String>();
                    HashMap<String, Double> map1 = new HashMap<String, Double>();
                    x_lat = c.getDouble(x_cord);
                    y_long = c.getDouble(y_cord);
                    label = c.getString(prov_label);
                    map1.put(x_cord, x_lat);
                    map1.put(y_cord, y_long);
                    map.put(prov_label, label);
                    ProvinsiList.add(map);
                    ProvinsiList.add(map1);
                    System.out.println(x_lat);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String file_url) {
            LatLng MAP_PUPI = new LatLng(x_lat, y_long);
            Marker Pupi = map.addMarker(new MarkerOptions().position(
                    new LatLng(x_lat, y_long)).title(label));
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(MAP_PUPI, 15));

            map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
        }   
    }

我不知道我的错在哪里,我希望有人能帮助我解决我的问题,非常感谢你

【问题讨论】:

    标签: java android json google-maps-android-api-2


    【解决方案1】:

    使用这个:

    for (int i = 0; i < yourArrayList.size(); i++) {
    
      double lati=Double.parseDouble(pins.get(i).latitude);
      double longLat=Double.parseDouble(pins.get(i).longitude);
      MAP.addMarker(new MarkerOptions().position(new LatLng(lati,longLat)).title(pins.get(i).pinname).snippet(pins.get(i).address));
     }
    

    或者你也可以使用这个:

     for(int pin=0; pin<pins.size(); pin++)
                {
                    LatLng pinLocation = new LatLng(Float.parseFloat(pins.get(pin).latitude), Float.parseFloat(pins.get(pin).longitude));
                    Marker storeMarker = map.addMarker(new MarkerOptions()
                    .position(pinLocation)
                    .title(pins.get(pin).pinname)
                    .snippet(pins.get(pin).address)
                    );
                }
    

    其中 latitudelongitude 是您在数组列表中存储的具有不同名称的字符串.....

    【讨论】:

    • 它是如何工作的?就像如果我将 lat 和 long 存储在 arraylist 中而不是 for (int i = 0; i &lt; yourArrayList.size(); i++) 中,如果我像 arraylist.add(lat) 和 arraylist.add(long) 那样添加 lat 和 long 会起作用吗?
    • Arraylist 必须带有 LatLng 原型。
    • ArrayList yourArrayList = new ArrayList();
    • 我的意思是在其中添加经纬度。
    猜你喜欢
    • 1970-01-01
    • 2012-11-14
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2015-02-11
    相关资源
    最近更新 更多