我的网站上有一张使用谷歌卫星图像作为底图的传单地图。 2018 年 6 月 11 日之后,如果没有 api 密钥,则无法访问 google 地图图块。目前可以使用以下 JavaScript 通过 Leaflet JS 访问图块。
googleSat = L.tileLayer('http://{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',{
maxZoom: 20,
subdomains:['mt0','mt1','mt2','mt3']
});
我将如何包含我的 api 密钥,以便能够在 2018 年 6 月 11 日之后继续从 Leaflet 访问地图图块?
只需指定 URL 即可从 Google 地图加载图块无证的API 反对Google 地图服务条款 https://developers.google.com/maps/terms#10-license-restrictions。让我引用他们的话:
- 许可限制。
10.1 行政限制。
除通过服务外,不得访问 API 或内容。除通过服务外,您不得访问地图 API 或内容。
例如,您不得通过以下方式访问地图图块或图像:
接口或渠道(包括未记录的 Google 接口)
除地图 API 之外。
您还会注意到图块 URL 是not记录在他们的开发文档 https://developers.google.com/maps/documentation/(截至 2018 年 6 月上旬)。
你什么can然而,要做的是为每个 Leaflet 实例加载一个 Google 地图实例,保持地图大小和中心同步,并使用突变观察器来监视 Google 地图实例何时加载图块,这样您就可以将其从 Google 地图上撕下来DOM 树并将其放入 Leaflet DOM 树中(如果您只是使用棘手的 CSS 在 Google 地图之上显示 Leaflet,最终您将遇到同步两者缩放动画的问题)。
如果这听起来太可怕,请不要担心。Leaflet.GoogleMutant https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant/为您完成所有繁重的工作。让我引用它的自述文件:
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY" async defer></script>
<link rel="stylesheet" href="https://unpkg.com/leaflet@latest/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@latest/dist/leaflet.js"></script>
<script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
var roads = L.gridLayer.googleMutant({ type: 'roadmap' }).addTo(map);
请注意,您的 API 密钥有一个非常明显的位置(这是您主要担心的地方),并且 GoogleMutant 仅使用公共(且有记录的)API(您也应该担心,因为它位于 ToS 中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)