在Google地图V2上添加多个标记

时间:2013-09-16 11:43:00

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

您好我正在开发小型Android应用程序,我想在地图上显示地图和一些标记。我有latlang值列表,我想在地图上显示它。我试着这样做:

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

所以我的问题是,当我尝试上面的方法时,它只显示最后一个标记而不显示所有标记。这该怎么做。需要帮忙。谢谢。

4 个答案:

答案 0 :(得分:2)

    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 )-->here i had made some changes add "pinLocation" instead of "storeLocation"
                    .title(pins.get(pin).pinname)
                    .snippet(pins.get(pin).address)
                    );
                }

> and after first check size of pins.size() ..

答案 1 :(得分:1)

您可以这样使用:

for (int i = 0; i < pins.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));


 }

答案 2 :(得分:0)

使用下面的共享偏好

  // Opening the sharedPreferences object
        sharedPreferences = getSharedPreferences("location", 0);

        // Getting number of locations already stored
        locationCount = sharedPreferences.getInt("locationCount", 0);

        // Getting stored zoom level if exists else return 0
        String zoom = sharedPreferences.getString("zoom", "0");

        // If locations are already saved
        if(locationCount!=0){

            String lat = "";
            String lng = "";

            // Iterating through all the locations stored
            for(int i=0;i<locationCount;i++){

                // Getting the latitude of the i-th location
                lat = sharedPreferences.getString("lat"+i,"0");

                // Getting the longitude of the i-th location
                lng = sharedPreferences.getString("lng"+i,"0");

                // Drawing marker on the map
                drawMarker(new LatLng(Double.parseDouble(lat), Double.parseDouble(lng)));
            }

标记标记:

             SharedPreferences.Editor editor = sharedPreferences.edit();

            // Storing the latitude for the i-th location
            editor.putString("lat"+ Integer.toString((locationCount-1)), Double.toString(point.latitude));

            // Storing the longitude for the i-th location
            editor.putString("lng"+ Integer.toString((locationCount-1)), Double.toString(point.longitude));

            // Storing the count of locations or marker count
            editor.putInt("locationCount", locationCount);

            /** Storing the zoom level to the shared preferences */
            editor.putString("zoom", Float.toString(googleMap.getCameraPosition().zoom));

            /** Saving the values stored in the shared preferences */
            editor.commit();

            Toast.makeText(getBaseContext(), "Marker is added to the Map", Toast.LENGTH_SHORT).show();

Refer this one...source code is availbale

答案 3 :(得分:0)

for (int i = 0; i < ComponentMapList.size(); i++) {
                    String city = ComponentMapList.get(i).getCity();
                    if (city != null) {
                        center = CameraUpdateFactory.newLatLng(new LatLng(
                                ComponentMapList.get(i).getLat(),
                                ComponentMapList.get(i).getLng()));
                        mMap.addMarker(new MarkerOptions().position(
                                new LatLng(ComponentMapList.get(i).getLat(),
                                        ComponentMapList.get(i).getLng()))
                                .title(city));
                    }
                }