从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/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</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第三方库,您确实需要包含它。