Maps 使用geoxml3和markerclusterer解析KML文件
我正在使用geoxml3和markerclusterer将kml文件解析为GoogleMapsAPI v3映射。到目前为止,这是可行的 kml文件存储若干信息Maps 使用geoxml3和markerclusterer解析KML文件,maps,geoxml3,Maps,Geoxml3,我正在使用geoxml3和markerclusterer将kml文件解析为GoogleMapsAPI v3映射。到目前为止,这是可行的 kml文件存储若干信息 <Placemark> <name>Manfred Mustermann</name> <description>Manfred Mustermann</description> <Point> <coordinates>7.
<Placemark>
<name>Manfred Mustermann</name>
<description>Manfred Mustermann</description>
<Point>
<coordinates>7.0964850607874,51.781641735074,0</coordinates>
</Point>
<address>Musterstr. 29 Aachen, 52070 Nordrhein-Westfalen</address>
<styleUrl>#0</styleUrl>
</Placemark>
曼弗雷德·穆斯特曼
曼弗雷德·穆斯特曼
7.0964850607874,51.781641735074,0
Musterstr。29亚琛,52070北莱茵威斯特法伦
#0
它可以输出节点“名称”或“描述”,但不能输出“地址”。如果我试着用place mark.address输出,信息窗口中会写入undefined
我的问题是,如何解析这个地址信息
这是我的密码:
$(document).ready(function(){
var myOptions = {
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mcOptions = {gridSize: 80, maxZoom: 15};
markers = [];
var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
markerclusterer = new MarkerClusterer(map, [], mcOptions);
var infoWindow = new google.maps.InfoWindow({maxWidth:800});
var myParser = new geoXML3.parser({
map: map,
singleInfoWindow:true,
createMarker:function(placemark){
var point = new google.maps.LatLng(placemark.point.lat, placemark.point.lng);
var con = "<pre>" + placemark.description + "<br /><br />" + placemark.address + "</pre>";
var marker = new google.maps.Marker({position:point});
markers.push(marker);
google.maps.event.addListener(marker, "click", function(){
infoWindow.content = con;
infoWindow.open(map, marker);
});
markerclusterer.addMarker(marker);
}
});
myParser.parse('dat.kml');
});
function clickMarker(i){
google.maps.event.trigger(markers[i], "click");
}
$(文档).ready(函数(){
变量myOptions={
缩放:3,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var mcOptions={gridSize:80,maxZoom:15};
标记=[];
var map=new google.maps.map(document.getElementById(“地图画布”),myOptions);
markerclusterer=新的markerclusterer(映射,[],mcOptions);
var infoWindow=new google.maps.infoWindow({maxWidth:800});
var myParser=new geoXML3.parser({
地图:地图,
singleInfoWindow:对,
createMarker:函数(placemark){
var point=new google.maps.LatLng(placemark.point.lat,placemark.point.lng);
var con=“”+placemark.description+”
“+placemark.address+”;
placemark = {
name: geoXML3.nodeValue(node.getElementsByTagName('name')[0]),
description: geoXML3.nodeValue(node.getElementsByTagName('description')[0]),
styleUrl: geoXML3.nodeValue(node.getElementsByTagName('styleUrl')[0])
};
var marker=new google.maps.marker({position:point});
标记器。推(标记器);
google.maps.event.addListener(标记“单击”,函数(){
infoWindow.content=con;
信息窗口。打开(地图、标记);
});
markerclusterer.addMarker(标记器);
}
});
parse('dat.kml');
});
功能点击标记(一){
google.maps.event.trigger(标记[i],“单击”);
}
非常感谢
Toni修改“geoxml3.js”文件。在“var render=function(responseXML,doc)”中,placemark定义为:
address: geoXML3.nodeValue(node.getElementsByTagName('address')[0])
将其更改为添加:
请记住,向KML添加地址标记不符合KML的标准。最好使用ExtendedData之类的标记。修改“geoxml3.js”文件。在“var render=function(responseXML,doc)”中,placemark定义为:
address: geoXML3.nodeValue(node.getElementsByTagName('address')[0])
将其更改为添加:
请记住,向KML添加地址标记不符合KML的标准。最好使用ExtendedData之类的标记