如何通过 "mid" 参数从 Google 地图 API 下载 KML 文件?

How to download a KML file from Google Maps API via "mid" param?

我正在做一个应用程序,我想下载 "mid" 参数引用的 Google 地图的 KML 文件,例如 thishttps://www.google.com/maps/d/u/0/viewer?mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E

我可以手动点击 "three dots button" > "Download KML file" 下载它,但我想使这个过程自动化。

有办法吗?

在唯一标识符前加上http://www.google.com/maps/d/kml?forcekml=1&mid=

http://www.google.com/maps/d/kml?forcekml=1&mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E

(相关问题: Render a My Maps using Google Maps JavaScript API)

在地图上显示该 KML 的代码片段:

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 11,
    center: {
      lat: 41.876,
      lng: -87.624
    }
  });

  var ctaLayer = new google.maps.KmlLayer({
    url: 'http://www.google.com/maps/d/kml?forcekml=1&mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E',
    map: map
  });
}
/* Always set the map height explicitly to define the size of the div
 * element that contains the map. */

#map {
  height: 100%;
}


/* Optional: Makes the sample page fill the window. */

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>

看起来这是 Google 我的地图(不是 Google 地图 API)。

这将为您提供 KMZ 版本(压缩):

https://www.google.com/maps/d/u/0/kml?mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E

这将为您提供 KML 版本(未压缩,不支持所有图标):

https://www.google.com/maps/d/u/0/kml?mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E&forcekml=1

这将为您提供 KMZ 中的网络链接:

https://www.google.com/maps/d/u/0/kml?mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E&nl=1

这将为您提供 KML 格式的网络链接:

https://www.google.com/maps/d/u/0/kml?mid=1Mdlz2iXu_iZCPhUhzKvT2B2j-6E&nl=1&forcekml=1