为中国用户动态切换谷歌地图API URL

Dynamically switching Google Maps API URL for users in China

本文关键字:谷歌地图 API URL 中国 用户 动态      更新时间:2023-09-26

这个问题不是关于为什么中国大陆的坐标不正确。我已经知道中国法律和他们的秘密算法在背后,但更重要的是,必须使用中国服务器来准确绘制中国境内的地图数据。

根据谷歌的说法,他们的中国服务器托管在maps.google.cn,而世界其他地区使用maps.google.com(注意不同的TLD(。

我希望能够使用.com作为默认值嵌入地图,并在查看中国时切换到.cn。我可以进行地理位置查询,以确定浏览器位置并加载相关的API,这对中国用户很有效,但这对中国以外的用户(或使用VPN的用户(在查看大陆时不起作用。

据我所知,在同一文档中加载和使用这两个API是不可能的。如果有人知道如何克服这一点,请将其作为答案发布。下一个最好的方法是为用户提供一个链接,本质上是用正确的API重新加载页面。

所以,我的问题。在浏览器中查看谷歌地图时,地图的右下角包含谷歌页脚及其版权和条款。此外,至少对我来说,还有一个到maps.google.cn的链接。然而,在我自己的代码和我在网上找到的每一个嵌入式示例中,它都不存在。更改URL中传递的regionlanguage无效。

如何使此链接显示在我自己的嵌入地图中?或者,对于"谷歌在中国"的问题,还有其他解决办法吗?

您可以使用的一种技术是使用JavaScript动态加载Maps API。您可以动态构建一个<script src="...">标签,并可能根据检测到的用户位置更改URL,而不是在网站中对其进行硬编码。

  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=initialize&key=<YOUR KEY HERE>';
  document.body.appendChild(script);

当用户在中国时,您的代码将负责将script.src值更改为http://maps.google.cn/...