java - map 中的多个标记未通过 SupportMapFragment 显示

标签 java android google-maps

我正在尝试在 GoogleMaps 中添加多个标记。我正在使用 Google SupportMapFragment。 Onload 我的 map 应该根据 arraylist 中的数据显示多个标记,但它只显示一个标记。 我对此进行了研究,我看到了this question所以,但我不明白为什么 map 上只显示一个标记。

更新我调试了我的代码并意识到在这一行中

mMap.addMarker(new MarkerOptions().position(position));

在这一行所有数据被传递之前,只有一个位置被传递

这是我的代码

 @Override
    public void onMapReady(GoogleMap googleMap) {
        this.mMap = googleMap;
        // Add a marker in Sydney, Australia,
        // and move the map's camera to the same location.
       // LatLng sydney = new LatLng(19.2372, 72.8441);
        for(int i=0;i<providers.size();i++){
            NearbyDataProvider provider = providers.get(i);
            LatLng position = new LatLng(Double.parseDouble(provider.getLattitude())
                    ,Double.parseDouble(provider.getLongitude()));
            mMap.addMarker(new MarkerOptions().position(position));
            mMap.moveCamera(CameraUpdateFactory.newLatLng(position));
        }

    }

NearByDataProvider.class

public class NearbyDataProvider { int image; String place; String lattitude; String longitude;

public NearbyDataProvider(int image, String place, String lattitude, String longitude) {
   this.setImage(image);
   this.setPlace(place);
   this.setLattitude(lattitude);
   this.setLongitude(longitude);
}

public int getImage() {
    return image;
}

public void setImage(int image) {
    this.image = image;
}

public String getPlace() {
    return place;
}

public void setPlace(String place) {
    this.place = place;
}

public String getLattitude() {
    return lattitude;
}

public void setLattitude(String lattitude) {
    this.lattitude = lattitude;
}

public String getLongitude() {
    return longitude;
}

public void setLongitude(String longitude) {
    this.longitude = longitude;
} }

要传递的经纬度

private String[] latitude = {"19.2372","19.1998","19.1802","19.1551","19.1405"};
    private String[] longitude = {"72.8441","72.8426","72.8554","72.8679","72.8422"};

最佳答案

检查一下,

ArrayList<MarkerData> markersArray = new ArrayList<MarkerData>();

for(int i = 0 ; i < markersArray.size() ; i++) {

createMarker(markersArray.get(i).getLatitude(), markersArray.get(i).getLongitude(), markersArray.get(i).getTitle(), 
markersArray.get(i).getSnippet(), markersArray.get(i).getIconResID());
}


private void createMarker(double latitude, double longitude, String title, String snippet, int iconResID) {

 googleMap.addMarker(new MarkerOptions()
        .position(new LatLng(latitude, longitude))
        .anchor(0.5f, 0.5f)
        .title(title)
        .snippet(snippet));
}

关于java - map 中的多个标记未通过 SupportMapFragment 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50525876/

相关文章:

javascript - 谷歌地图 API 3 - Javascript : Markers don't appear if created in function

android - 如何在 map 上跟踪和显示用户的位置

java - HSQLDB 与 Hibernate 在应用程序结束后不保存记录

android - 如何解决滚动列表页面时不选择总 ListView ?

android - 从源代码为 maguro 构建 Android JB

android - Firebase 规则如何在其父级被删除时防止添加或更新值

mysql - google maps mysql查询查找公交车

java - org.w3c.dom.Element 获取父级中的位置

java - 一旦我运行一个自动化测试场景,有没有一种方法可以使用自动化测试场景本身来检查 Linux 服务器日志错误消息和异常

java - 如何在 Java 中将以下字符串日期转换为 Java 数据格式?