地図蔵 ▷ 2012年までの記事「Polygon Array + XML」

Polygon Array + XML

(2012年7月24日)

イチロー選手のヤンキース移籍により、新たにブロンクスに「エリア51 31」。

ワールドシリーズの舞台に立っていただきたいものですね。

さて本題、Google Maps で XML のデータから複数のポリゴンを描画するおぼえがき。

downloadUrl("data.xml?"+Math.random(), function(data) {
 .....
 var lines = data.documentElement.getElementsByTagName("line");
 for (var a = 0; a < lines.length; a++) {
  var desc = lines[a].getAttribute("desc");
  var coords = lines[a].getElementsByTagName("coord");
  var pts = [];
  for (var i = 0; i < coords.length; i++) {
   pts[i] = new google.maps.LatLng(parseFloat(coords[i].getAttribute("lat")), .....
  }
  var LinePath = new google.maps.Polygon({path: pts, strokeColor: "#FF0000".....});
  LinePath.setMap(map);
  gonClick(LinePath, desc);
 }
});
.....
function gonClick(LinePath, desc) {
 infowindow = new google.maps.InfoWindow({content: desc});
 google.maps.event.addListener(LinePath, "click", function(event) {
  infowindow.setContent(desc);
  infowindow.setPosition(event.latLng);
  infowindow.open(map);
 });
}

infoWindow のふるまいがコツでした。