Google Maps API V3のxml
xmlファイルから読み込んだものを複数カスタムアイコン(情報ウィンドウ付)で表示させたいです。
現在アイコンは読まれずウィンドウも一つの状態です。
xmlからの緯度経度の取得はできるのですが、その他の情報の取得がわかりません。
下記がプログラムソースです。
xmlファイル
<?xml version="1.0"?>
-<markers>
<marker season="" genre="" link="http://www.manyou-kumamoto.jp/castle/" type="culture" lng="130.705841" lat="32.806141" address="熊本県熊本市本丸1-1 " name="熊本城"/>
<marker season="" genre="" link="http://www.greenland.co.jp/index2.html" type="reisure" lng="130.464676" lat="32.987690" address="熊本県荒尾市下井手1616" name="三井グリーンランド"/>
</markers>
javaプログラムソース
$(function(){
$.ajax({
url:"map.xml",
cache:false,
dataType:"xml",
success:function(xml){
var data=xmlRequest(xml);
initialize(data);
}
});
});
function xmlRequest(xml){
var data=[];
$(xml).find("markers > marker").each(function(){
var dat={};
dat.lat=this.getAttribute("lat");
dat.lng=this.getAttribute("lng");//この辺の他のノード取得
$(this).children().each(function(){
if(this.childNodes.length>0)dat[this.tagName]=this.childNodes[0].nodeValue;
});
data.push(dat);
});
return data;
}
function initialize(data){
var op={
center : new google.maps.LatLng(32.791892438123696,130.704345703125),
zoom : 9,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("map_canvas"),op);
var reisure=new google.maps.MarkerImage(
"d_5.ico",
new google.maps.Size(48.0,64.0)
);
var culture=new google.maps.MarkerImage(
"d_6.ico"
);
if (data != null) {
var i=data.length;
}
while(i-- >0){
var dat=data[i];
var obj={
position:new google.maps.LatLng(dat.lat,dat.lng),
map:map,
icon:dat.type //使用の仕方はあってますか?
};
var marker=new google.maps.Marker(obj);
var infowindow = new google.maps.InfoWindow({
content:'<a href="dat.link"/>kumamoto</a>' //使用の仕方はあってますか?
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
}
google.maps.event.addDomListener(window, "load", intialize);
よろしくおねがいします。
お礼
回答ありがとうございました。XPの初期の安いパソコンですので ご指摘のとおりグラフィック性能が足りないのだと思います。 開けない理由がわかりました。ありがとうございました。