Google Maps Android API v2 を使用して地図上に表示される Android アプリケーションのデータを含む XML ファイルを解析しています。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 の属性値に基づいて、マップ上に各マーカーを異なるアイコンで表示したいと考えています。ループを通じてマーカーを追加するための私の現在のコードは次のとおりです。
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
ドローアブル フォルダー内のファイルにのみ関係するためです。XML のアイコン属性に基づいて、マーカーごとに異なるアイコンを動的に表示するにはどうすればよいですか?
どんな助けでも大歓迎です。:)