2013-09-16 2 views
0

Привет Я разрабатываю небольшое приложение для Android, в котором я хочу отображать карту и некоторые маркеры на карте. У меня есть список значений latlang, и я хочу отобразить его на карте. Я попытался это следующим образом:Добавление нескольких маркеров на карте Google V2

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

Так что моя проблема в том, что, когда я пытаюсь выше методы он просто отобразить последний маркер не показывая весь маркер. Как это сделать. Нужна помощь. Спасибо.

+0

Возможно, это полезно ... http: //wptrafficanalyzer.in/blog/adding-multiple-marker-locations-in-google-maps-android-api-v2-and-save-it-in -shared-preferences/ – Aravin

+1

Следуйте по ссылке http://stackoverflow.com/questions/13855049/how-to-show-multiple-markers-on-mapfragment-in-google-map-api-v2 – Amit

ответ

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

Altaf Я попробовал ваше решение, но все же оно не работает. Есть ли другой способ – nilkash

+0

, вы проверили размер вашего массива ?? – QuokMoon

+1

Да, сэр и размер массива равен 2. Тем не менее, я не знаю, что он показывает мне только последний маркер. – nilkash

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

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


} 
Смежные вопросы