gpt4 book ai didi

android - 如何在 Google Maps Android API v2 中显示具有不同图标的多个标记?

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:29 24 4
gpt4 key购买 nike

我正在解析一个 XML 文件,其中包含我的 Android 应用程序的数据,该应用程序将使用 Google Maps Android API v2 在 map 上显示。 XML 文件的示例格式为:

<markers>
<marker name="San Pedro Cathedral"
address="Davao City"
lat="7.0647222"
long="125.6091667"
icon="church"/>
<marker name="SM Lanang Premier"
address="Davao City"
lat="7.0983333"
long="125.6308333"
icon="shopping"/>
<marker name="Davao Central High School"
address="Davao City"
lat="7.0769444"
long="125.6136111"
icon="school"/>
</markers>

现在,我想根据 marker 元素中 icon 的属性值,用不同的图标在 map 上显示每个标记。我当前通过循环添加标记的代码是:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("http://dds.orgfree.com/DDS/landmarks_genxml.php");

NodeList markers = doc.getElementsByTagName("marker");

for (int i = 0; i < markers.getLength(); i++) {
Element item = (Element) markers.item(i);
String name = item.getAttribute("name");
String address = item.getAttribute("address");
String stringLat = item.getAttribute("lat");
String stringLong = item.getAttribute("long");
String icon = item.getAttribute("icon"); //assigned variable for the XML icon attribute
Double lat = Double.valueOf(stringLat);
Double lon = Double.valueOf(stringLong);
map = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();

map.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(name)
.snippet(address)
//I have a coding problem here...
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.icon)));

// Move the camera instantly to City Hall with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CITYHALL, 15));

我的可绘制文件夹中有教堂、购物、学校等所有不同的图标。但是我遇到了问题:

.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)

因为 R.drawable 仅适用于 drawable 文件夹中的文件。我怎样才能根据 XML 上的 icon 属性动态地为每个标记显示不同的图标?

如有任何帮助,我们将不胜感激。 :)

最佳答案

获取资源:

getResources().getIdentifier(icon,"drawable", getPackageName())

上面使用的 icon 是为 XML icon 属性分配的变量

使用它来动态获取图标:

.icon(BitmapDescriptorFactory
.fromResource(getResources().getIdentifier(icon,"drawable", getPackageName()))

关于android - 如何在 Google Maps Android API v2 中显示具有不同图标的多个标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14599842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com