您好我正在开发小型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)
);
}
所以我的问题是,当我尝试上面的方法时,它只显示最后一个标记而不显示所有标记。这该怎么做。需要帮忙。谢谢。
答案 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();
答案 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));
}
}