首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未使用SupportMapFragment显示的地图中的多个标记

未使用SupportMapFragment显示的地图中的多个标记
EN

Stack Overflow用户
提问于 2018-05-25 17:28:46
回答 1查看 52关注 0票数 1

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

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

代码语言:javascript
复制
mMap.addMarker(new MarkerOptions().position(position));

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

下面是我的代码

代码语言:javascript
复制
 @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

公共类NearbyDataProvider { int image;字符串位置;字符串长度;字符串经度;

public NearbyDataProvider(int image,字符串位置,字符串长度,字符串经度){this.setImage(图像);this.setPlace(位置);this.setLattitude(长度);this.setLongitude(经度);}公共int getImage() {返回图像;}公共空setImage(int图像){ this.image =图像;}公共字符串getPlace() {返回位置;}公共空setPlace(字符串位置){ this.place =位置;}公共字符串getLattitude() {返回长度;}公共无效setLattitude(字符串长度){ this.lattitude =延迟;}公共字符串getLongitude() {返回经度;}公共无效setLongitude(字符串经度){ this.longitude =经度;}}

要传递的LatLong

代码语言:javascript
复制
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"};
EN

回答 1

Stack Overflow用户

发布于 2018-05-25 17:40:47

看看这个,

代码语言:javascript
复制
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));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50525876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档