从XML/KML获取标记信息
有没有办法从这种样式的XML/KML文档中获取标记信息从XML/KML获取标记信息,xml,google-maps,gps,google-maps-markers,Xml,Google Maps,Gps,Google Maps Markers,有没有办法从这种样式的XML/KML文档中获取标记信息 <?xml version="1.0" encoding="UTF-8" ?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <Placemark> <Point> <coordinates>4.4852,51.52229,0</coordi
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<Placemark>
<Point>
<coordinates>4.4852,51.52229,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
4.4852,51.52229,0
现在我们需要更改gps坐标,所以我们可用的格式应该是:51.52229,4.4852
如何在一个变量中加载gps坐标,并在V3代码中将它们放入我们的地图中。
我们尝试过这个代码,但它不起作用
// Stormchasers locaties inladen
downloadUrl("https://www.followmee.com/kml.aspx?token=b327299e-33e7-4b56-96ef-88d812544686", function(data) {
var xml = xmlParse(data);
var markers = xml.documentElement.getElementsByTagName("Point");
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < markers.length; i++) {
var path = [];
var points = markers[i].getElementsByTagName("coordinates");
path.push(point);
var marker = createMarker(latlng);
marker.setMap(map);
}
});
function createMarker(latlng) {
var marker = new google.maps.Marker({
map: map,
position: latlng,
});
return marker;
}
// Einde Iconen inladen
//Stormchasers inladen位置
下载网址(“https://www.followmee.com/kml.aspx?token=b327299e-33e7-4b56-96ef-88d812544686“,功能(数据){
var xml=xmlParse(数据);
var markers=xml.documentElement.getElementsByTagName(“点”);
var bounds=new google.maps.LatLngBounds();
对于(var i=0;i
有人能帮我们吗
谢谢大家! 解析KML coords,下面的代码是从processPlacemarkCoords函数中提取的。由于您只有一组坐标,在您的示例中,您可以这样做(点将是具有所需坐标的google.maps.LatLng对象),如果您需要处理多段线或多边形,则需要执行更多操作
var coords = geoXML3.nodeValue(coordNodes[j]).trim();
coords = coords.replace(/,\s+/g, ',');
coords = coords.split(',');
if (!isNaN(coords[0]) && !isNaN(coords[1])) {
var point = new google.maps.LatLng(
parseFloat(coords[1]),
parseFloat(coords[0]))
} else alert("bad coordinates, not numbers");
//nodeValue: Extract the text value of a DOM node, with leading and trailing whitespace trimmed
geoXML3.nodeValue = function(node, defVal) {
var retStr="";
if (!node) {
return (typeof defVal === 'undefined' || defVal === null) ? '' : defVal;
}
if(node.nodeType==3||node.nodeType==4||node.nodeType==2){
retStr+=node.nodeValue;
}else if(node.nodeType==1||node.nodeType==9||node.nodeType==11){
for(var i=0;i<node.childNodes.length;++i){
retStr+=arguments.callee(node.childNodes[i]);
}
}
return retStr;
};
var coords=geoXML3.nodeValue(coordodes[j]).trim();
coords=coords.replace(/,\s+/g',,');
coords=coords.split(',');
如果(!isNaN(coords[0])&&!isNaN(coords[1])){
var point=new google.maps.LatLng(
parseFloat(coords[1]),
parseFloat(coords[0]))
}else警报(“错误坐标,不是数字”);
//nodeValue:提取DOM节点的文本值,并修剪前导和尾随空格
geoXML3.nodeValue=函数(节点,定义){
var retStr=“”;
如果(!节点){
return(typeof deffal=='undefined'| | deffal===null)?“”:deffal;
}
if(node.nodeType==3 | | node.nodeType==4 | | node.nodeType==2){
retStr+=node.nodeValue;
}else if(node.nodeType==1 | | node.nodeType==9 | | node.nodeType==11){
对于(var i=0;iYou必须解析元素内容之外的坐标,并使用它们创建latlng(并且可能将该latlng推送到path数组而不是XML元素上)。请参阅源代码以获取如何执行此操作的示例。谢谢您,因此如果我添加类似的内容,它会起作用吗?'var myMap=new google.maps.Map(“);var myParser=new geoXML3.parser({Map:myMap});myParser.parse('my.kml');'我说不出来(注释中的代码真的很难阅读……如果要使用geoxml3第三方库,您确实需要包含它。