在Google Maps API v2 Android中添加多个标记 [英] Adding multiple markers in Google Maps API v2 Android

查看:107
本文介绍了在Google Maps API v2 Android中添加多个标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的地图中添加多个标记,但我不知道方式。

现在,即时通讯使用此功能,并且正常工作:

 标记m1 = googleMap.addMarker(新MarkerOptions()
.position(新LatLng(38.609556,-1.139637) )
.anchor(0.5f,0.5f)
.title(Title1)
.snippet(Snippet1)
.icon(BitmapDescriptorFactory.fromResource(R.drawable .logo1)));


Marker m2 = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(40.4272414,-3.7020037))
.anchor(0.5f,0.5 f)
.title(Title2)
.snippet(Snippet2)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.logo2)));


标记m3 = googleMap.addMarker(新MarkerOptions()
.position(新LatLng(43.2568193,-2.9225534))
.anchor(0.5f,0.5 f)
.title(Title3)
.snippet(Snippet3)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.logo3)));

但是,当我想在地图中添加300个标记时,问题就出现了。



有什么办法从数组或其他任何地方读取标记吗?

另外一个问题:我可以从外部文件中读取标记吗,所以我可以添加或更新标记而不用接触应用程序代码?

谢谢。

解决方案

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

...

保护标记createMarker(double latitude,double longitude,String title,String snippet,int iconResID){

return googleMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude,longitude))
.anchor(0.5f,0.5f)
.title(title)
.snippet(snippet);
.icon(BitmapDescriptorFactory.fromResource(iconResID)));
}


I want to add multiple markers in my map, but I don't know the way.

At the moment, im using this, and it works correctly:

Marker m1 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(38.609556, -1.139637))
                .anchor(0.5f, 0.5f)
                .title("Title1")
                .snippet("Snippet1")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo1)));


Marker m2 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(40.4272414,-3.7020037))
                .anchor(0.5f, 0.5f)
                .title("Title2")
                .snippet("Snippet2")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo2)));


Marker m3 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(43.2568193,-2.9225534))
                .anchor(0.5f, 0.5f)
                .title("Title3")
                .snippet("Snippet3")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo3)));

But the problem comes when I want to add 300 markers in my map. And doing it one by one is very annoying.

Is there any way to read markers from array or anything?

Another question: could I read markers from external file, so I can add or update markers without touching app code?

Thanks.

解决方案

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

...

protected Marker createMarker(double latitude, double longitude, String title, String snippet, int iconResID) {

    return googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(latitude, longitude))
            .anchor(0.5f, 0.5f)
            .title(title)
            .snippet(snippet);
            .icon(BitmapDescriptorFactory.fromResource(iconResID)));
}

这篇关于在Google Maps API v2 Android中添加多个标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆