jQueryを使ってKMLデータの内容を表示する

説明

KMLデータの内容を表示するには2010年11月4日時点でのver 3ライブラリではメタ情報した取得できないためjQueryなど他のライブラリを使って処理を行います。
同一ドメインであれば$.get()を使ってKMLデータのURLを指定し読み込ませます。コールバック関数に読み込まれたKMLデータが渡されるので$(xmlデータ)のように指定した後、find()などのメソッドを使って必要なデータを読み込ませ処理します。


Google Maps APIプログラミング入門 Google Maps API プログラミング入門。Google Maps API Expertである勝又雅史氏が最新のAPI ver3やGoogle Maps for Flashなどについて解説しています。
アマゾンで購入する

サンプルコード [実行]

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Google Maps API ver 3 Sample/グーグルマップAPIサンプル/Google Maps API样品</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script src="jquery-1.4.3.min.js" type="text/javascript"></script>
</head>
<body>
<div id="gmap"></div>
<script type="text/javascript">
var map = new google.maps.Map(
document.getElementById("gmap"),{
zoom : 5,
center : new google.maps.LatLng(0,0),
mapTypeId : google.maps.MapTypeId.ROADMAP
}
);
// KML読み込み表示
var ctime = (new Date()).getTime();
var kmlURL = "http://www.openspc2.org/reibun/Google/Maps/API/ver3/code/map/KML/0003/sample/station.kml";
var myKMLLayer = new google.maps.KmlLayer(kmlURL+"?t="+ctime);
myKMLLayer.setMap(map);
// ここはjQueryを使ってのKMLデータ読み込み処理
$(function(){
$.get(kmlURL,function(kmlData){
alert(kmlData);
$(kmlData).find("Placemark").each(function(ptr, obj){
alert(obj.firstElementChild.firstChild.nodeValue);
});
});
});
</script>
</body>
</html>

■KML
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Folder>
<Placemark>
<name>塩尻駅!!</name>
<description>長野県にある塩尻駅です</description>
<tooltip>広丘駅です。ツールチップで表示されます。</tooltip>
<Point>
<coordinates>137.94788718223572, 36.11419076502905, 0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>広丘駅</name>
<description>★長野県にある広丘駅です★</description>
<tooltip>広丘駅です。ツールチップで表示されます。</tooltip>
<Point>
<coordinates>137.9495769739151, 36.14828888889966, 0</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>