2017-05-18 16 views
0

當我點擊地圖時,我將所有用戶的LatLng存儲在SharedPreference中。現在我正在繪製一個圓圈,如果有任何用戶進入此圓圈,標記應該可見。我能夠做到這一切,但只顯示一個用戶。但在我的共享首選項中有多個LatLng。我該怎麼辦?請保護我。我的代碼是在這裏在地圖上顯示用戶,如果它們位於半徑內

private void calculateUserLocation(MapAreaWrapper draggableCircle) { 
    float[] distance = new float[10]; 

    Location.distanceBetween(map_flag.getPosition().latitude, map_flag.getPosition().longitude, 
      draggableCircle.getCenter().latitude, draggableCircle.getCenter().longitude, distance); 

    if (distance[0] > draggableCircle.getRadius()) { 
     Toast.makeText(getBaseContext(), "Outside", Toast.LENGTH_LONG).show(); 
    } else { 
     map_flag.setVisible(true); 
     Toast.makeText(getBaseContext(), "Inside", Toast.LENGTH_LONG).show(); 

    } 
} 
+0

如果它顯示只有一個用戶可能是因爲其他用戶已被覆蓋。你使用ArrayList來存儲LatLngs嗎?如果沒有,我會建議你這樣做。然後遍歷每個值並通過distanceBetween()方法運行它。 –

回答

1
private Marker mMarker; 

    private void calculateUserLocation(MapAreaWrapper draggableCircle) { 
     float[] distance = new float[10]; 

     Location.distanceBetween(map_flag.getPosition().latitude, map_flag.getPosition().longitude, 
       draggableCircle.getCenter().latitude, draggableCircle.getCenter().longitude, distance); 

     if (distance[0] > draggableCircle.getRadius()) { 
      Toast.makeText(getBaseContext(), "Outside", Toast.LENGTH_LONG).show(); 
     } else { 
      map_flag.setVisible(true); 
    if (map!=null){ 


//Simple Marker 
     Marker hamburg = map.addMarker(new MarkerOptions().position(LatLng) 
       .title("Hamburg")); 

//marker With icon 
     Marker kiel = map.addMarker(new MarkerOptions() 
       .position(LatLng) 
       .title("Kiel") 
       .snippet("Kiel is cool") 
       .icon(BitmapDescriptorFactory 
         .fromResource(R.drawable.ic_launcher))); 
    } 

      Toast.makeText(getBaseContext(), "Inside", Toast.LENGTH_LONG).show(); 

     } 
    } 
相關問題