如何在 Leaflet 中加载 Google 地图基础层(2018 年 6 月之后)?

2024-01-09

我的网站上有一张使用谷歌卫星图像作为底图的传单地图。 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。让我引用他们的话:

  1. 许可限制。

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(使用前将#替换为@)

如何在 Leaflet 中加载 Google 地图基础层(2018 年 6 月之后)? 的相关文章

  • 缩放更改后获取谷歌地图 v3 的边界

    我试图在缩放更改后获取地图的边界 但是 Zoom changed 事件会触发before边界已被重新计算 因此 在 Zoom changed 处理程序中 您将获得之前的边界 而不是新的边界 有没有办法获得缩放变化的正确范围 这是一个bug
  • 谷歌地图不显示 Android

    我想在我的应用程序中实现谷歌地图 我添加了谷歌地图活动并创建了一个密钥 我没有更改其他地方的代码中的任何内容 我应该工作 但没有 地图活动 public class MapsActivity extends FragmentActivity
  • 在 Android 应用程序中使用传单来显示在线地图

    是否有任何示例项目展示如何正确使用传单在 Android 应用程序中显示在线地图 因为我尝试了很多示例 但每次我的应用程序中都有一个空的网络视图 这是我的代码 private WebView mWebView Override protec
  • 未捕获的 InvalidValueError:setMap:不是 Map 的实例

    当我使用sencha touch2 2 1时 我遇到了一个问题 在查看器中 items id mapCanvas xtype map useCurrentLocation true 在控制器中 var map Ext getCmp mapC
  • 如何反转 KML 以便突出显示多边形外部的区域

    我有一个 KML 文件 它是一个覆盖城市边界的多边形 目前我的多边形是灰色的 我想反转它 所以世界的其他部分都是灰色的 这是 kml 的链接 它应该带您到 Google 地图 埃德蒙顿市 https docs google com a ed
  • GMSMarker 不透明度动画不重复

    我正在尝试使带有自定义图标的 GMSMarker 以衰减的动画不透明度闪烁 动画应该重复几次 但事实并非如此 它只执行一次转换 然后就停止了 这种情况仅在对不透明度属性进行动画处理时发生 在对其他属性进行动画处理时效果很好 这是代码 GMS
  • “google.maps.event.addDomListener(窗口,'加载',初始化);”是什么意思意思是? [复制]

    这个问题在这里已经有答案了 这是什么意思 google maps event addDomListener window load initialize 我有函数 initialize 但我还添加了两个参数 经度和纬度 所以它是这样的 fu
  • Google 地图 ios:Mapview 路线垂直折线始终指向位置箭头的北部或顶部

    我已经在我的应用程序中实现了 Google Maps IOS 的基本功能 我必须将地图视图的方位设置为始终指向顶部或北部 我需要 如果我点击导航按钮 地图视图应该动画到位置箭头顶部 就像谷歌地图 ios 应用程序一样 箭头应始终固定并指向北
  • Google 地图 v3 信息窗口在地图视口外打开

    如果单击地图视口顶部附近的标记 信息窗口将加载到可视区域之外 并且必须拖动地图才能查看信息窗口内容 理想情况下 我不希望地图自动平移 有没有办法以不同的方向加载信息窗口 例如如果标记位于视口的顶部 则以向下的方向显示信息窗口 不 你不能以不
  • 谷歌地图的灰度

    有没有什么方法可以在不丢失任何其他功能的情况下以灰度显示 Google 地图 通过 Javascript API 嵌入 是的 他们在 api V3 中引入了StyledMaps http code google com apis maps
  • 加载谷歌地图时接收模糊的天空屏幕

    while loading google map on device i am receiving below screen sometimes it comes on second load as shown below otherwis
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • Rails 5 - Google 地图 - Javascript 错误 - initMap 不是函数 - 修复一个 js 问题会产生另一个问题

    多年来我一直在尝试弄清楚如何在我的 Rails 应用程序中使用谷歌地图 我目前正在尝试使用 Rails 5 我也一直在试图弄清楚如何让我的 javascript 在生产环境中工作 我最近对这些挑战的尝试概述于生产问题帖子 https sta
  • Google 地图 Javascript v3 折线点击事件

    我正在尝试显示一张地图 其中有多条路线布置为折线 单击多段线时 我想显示特定于该线的数据 将数据与线关联不是问题 但无论单击哪条线 显示的数据都会与最近绘制的线关联 就好像每条新折线都会覆盖最后一条线一样 我有一个数据库 其中包含 gpx
  • 加载谷歌地图控件时是否有事件?

    我知道tilesloaded 但控件似乎在该事件之后加载 我基本上希望能够通过 jQuery 获取控件 但甚至找不到正确的监听 我也刚刚处理了 没有类似的事件 在控件可见之前空闲和tilesloaded触发 因此 基本上将 特殊控制 类添加
  • Google 地图地点详细信息 API 不返回电话号码

    我正在拨打 地点详细信息 电话 我想取回电话号码 formatted phone number 该字段没有被返回 并且我在响应中没有看到任何电话号码 我将 fields 属性设置为null获取所有可用的属性 const placeDetai
  • 带有方向的谷歌静态地图

    我的项目列表中有带有迷你地图的生成地点 地图上应该有 2 个点以及这两点之间的彩色道路方向 它应该看起来像这样 这应该是静态图片 因为页面上会有很多这样的不同方向的图片 但正如我所见 谷歌静态地图不允许绘制这样的图像 两点之间只能有直线 如
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 向标记添加自定义属性(Google Map Android API V2)

    使用 Google Map API V3 时 我可以通过以下方式添加自定义属性 var marker new google maps Marker position userLocation map myGoogleMap animatio
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc

随机推荐

  • PHP 的 glob() 可以以不区分大小写的方式查找文件吗?

    我希望所有 CSV 文件都在一个目录中 所以我使用 glob my dir CSV 但是 这不会找到具有小写 CSV 扩展名的文件 I could use glob my dir CSV csv GLOB BRACE 但是有没有办法允许所有
  • Xcode6中如何获取设备控制台?

    我正在探索 iOS8 测试版 我在 窗口 gt 设备 gt MyiPad 中找不到设备控制台日志 有人可以告诉我如何获取控制台日志吗 你走在正确的道路上 只需单击向下的小箭头 参见图片 它就会向您显示日志
  • chrome 视频 src 更改不起作用

    我使用以下代码来更改视频src视频结束后的属性 我预加载第二个视频 我更改 src 以链接到第二个视频 In IE and Firefox这很好用but在Chome 27 X X视频元素 改变后似乎死了src 奇怪的是 如果我使用断点来单步
  • 在 java 中禁用 XML DOM 解析器的自动解码

    这是我的程序 public class XMLTest static String XMLdata section section
  • 将字符串转换为日期时类型不匹配

    发现问题 日期语言为俄语 但下一个问题是 如何根据特定用户的日期格式转换日期字符串 可能是简单的问题 把我的头撞到墙上 我的 txt 文件中有日期 它被读取为 21 年 9 月 1 日 VBA 中将其用作日期的任何操作都会导致类型不匹配 D
  • 使用 Visual Studio Code 进行调试不起作用

    我希望能够使用 Visual Studio Code 调试 Angular2 应用程序 这是我的环境 OS Ubuntu 16 10 x64 Browser Chromium53 0 2785 143 Node 6 8 0 Angular
  • cUrl 设置语言标头

    如何为我的 cURL 请求设置语言标头 例如现在我得到了 facebook com 的荷兰语主页 可能是因为我的服务器位于荷兰 通过标头发送的默认语言 在这种情况下 我更喜欢英语而不是荷兰语 所以我尝试在curl中设置一个httpheade
  • php 函数将 %3c 转换回 html

    我有一个字符串需要转换回 html 它的格式如下 3cli 3e 这应该是 li 我可以使用什么 php 函数来转换它 尝试了 html entity decode 但这不起作用 urldecode http www php net man
  • RSA 密码系统蒙哥马利模乘法的最终减法

    我对如何绕过模数的最终减法感到困惑radix 2 蒙哥马利模乘法 https pdfs semanticscholar org cbfd 5f286cf3a54025356cff90cd17ab083fafc1 pdf 当用于模幂算法时 下
  • 用于许多并发客户端和数据库访问的 WCF 服务

    我是 WCF 服务的新手 想知道解决以下问题的最佳方法是什么 我有很多客户 200 500 他们在工作日期间不断地向我提出服务请求 大多数请求都涉及询问底层数据库以反馈正确的响应 我关心的是传入请求产生的数据库连接的潜在数量 如果所有客户端
  • Objective-C 计算字符串值

    这是我的主要 int x 0 NSString new NSString alloc initWithString 9 4 x new intValue NSLog hi i x 这会导致 9 因为给出字符串的 intValue 将只读取数
  • 用于检查字符串仅包含十六进制字符的正则表达式

    我以前从未使用过正则表达式 但我发现它们对于处理字符串非常有用 我看到了几个教程 http www vogella de articles JavaRegularExpressions article html 例如 但我仍然无法理解如何对
  • 根据给定长度生成所有可能的字符串

    我希望能够从给定长度生成所有可能的字符串 坦率地说 我不知道如何编码 因此 为了进一步解释 我和一个朋友想演示一些基本的黑客技术 因此出现了暴力破解 当然 他会成为我的受害者 这不是什么违法的事情 然而 他告诉我的唯一一件事是他的密码将是
  • RSA 加密公钥未从容器返回?

    我觉得我想做的事情很简单 但由于某种原因它不想工作 这是一个完整的代码片段来测试我想要做的事情 using System using System Xml using System Security Cryptography using S
  • 通过 URL 将 DateTime 传递到控制器导致 ASP .NET MVC 3 中出现错误(区域性)

    我的应用程序在 web config 中设置了 pt BR 区域性 日期为 dd mm yyyy
  • 将附件添加到电子邮件消息会引发类型错误:set_text_content() 获得意外的关键字参数“maintype”

    按照中的示例Python 电子邮件示例 https docs python org 3 library email examples html看起来添加附件应该非常简单 但是 以下方法不起作用 import smtplib from ema
  • 在 VS2012 中添加 NuGet 包作为项目引用的最佳方法?

    好的 问题问得很快 我可能只是太厚了 如果右键单击项目的 引用 文件夹 然后单击 管理 NuGet 包 您就可以安装包 并且您单击的项目会自动引用它们 但后来我想在同一解决方案中添加对其他项目的相同引用 如果重复前面的操作但单击另一个项目
  • Android:图像按钮作为超链接、电话、地图方向?

    我正在为我的公司制作一个简单的应用程序 我创建了 4 个按钮 但似乎无法让它们正确链接 一个按钮应该打开我们的移动网站 另一个按钮可以打电话给我们 另一个按钮可以映射到我们 最后一个按钮链接到我们的 新闻 网站 任何帮助将不胜感激 在按钮上
  • Javascript:获取数组的每个第n个元素

    我得到一个数据数量未知的数组 但我只有预定义的数据量要显示 存储 如何在 JavaScript 中取出初始数组的每个第 n 个元素并减少它 例如 我得到一个大小为 10000 的数组 但只能显示 n 2k 元素 我这样尝试过 delta M
  • 如何在 Leaflet 中加载 Google 地图基础层(2018 年 6 月之后)?

    我的网站上有一张使用谷歌卫星图像作为底图的传单地图 2018 年 6 月 11 日之后 如果没有 api 密钥 则无法访问 google 地图图块 目前可以使用以下 JavaScript 通过 Leaflet JS 访问图块 googleS