js读取解析kml文件

319 阅读1分钟
requestKml() {
      var xhr = new XMLHttpRequest();
      //该文件需要放在index.html文件同级下
      xhr.open('GET', 'hx.kml', true);
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
          var parser = new DOMParser();
          var xmlDoc = parser.parseFromString(xhr.responseText, "text/xml");
          let tags = xmlDoc.getElementsByTagName("coordinates")
          let names = xmlDoc.getElementsByTagName("name")
          var result = {};
          
          // 遍历经纬度数组
          for (var i = 0; i < tags.length; i++) {
            var coordinates = tags[i].textContent;
            var coordinatesArray = coordinates.trim().split("\n");
            var luName = names[i].textContent

            let arr = [] 

            for (const item of coordinatesArray) {
              var lonLat = item.trim().split(",");
              var lon = parseFloat(lonLat[0]);
              var lat = parseFloat(lonLat[1]);
              arr.push({lon,lat})
            }
            result[luName] = arr;
          }
          var jsonResult = JSON.stringify({ lines: result });
          console.log(JSON.parse(jsonResult));
        }
      };
      xhr.send();
    },