为中国用户动态切换谷歌地图API URL
Dynamically switching Google Maps API URL for users in China
这个问题不是关于为什么中国大陆的坐标不正确。我已经知道中国法律和他们的秘密算法在背后,但更重要的是,必须使用中国服务器来准确绘制中国境内的地图数据。
根据谷歌的说法,他们的中国服务器托管在maps.google.cn
,而世界其他地区使用maps.google.com
(注意不同的TLD(。
我希望能够使用.com
作为默认值嵌入地图,并在查看中国时切换到.cn
。我可以进行地理位置查询,以确定浏览器位置并加载相关的API,这对中国用户很有效,但这对中国以外的用户(或使用VPN的用户(在查看大陆时不起作用。
据我所知,在同一文档中加载和使用这两个API是不可能的。如果有人知道如何克服这一点,请将其作为答案发布。下一个最好的方法是为用户提供一个链接,本质上是用正确的API重新加载页面。
所以,我的问题。在浏览器中查看谷歌地图时,地图的右下角包含谷歌页脚及其版权和条款。此外,至少对我来说,还有一个到maps.google.cn
的链接。然而,在我自己的代码和我在网上找到的每一个嵌入式示例中,它都不存在。更改URL中传递的region
和language
无效。
如何使此链接显示在我自己的嵌入地图中?或者,对于"谷歌在中国"的问题,还有其他解决办法吗?
您可以使用的一种技术是使用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/...
。
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 标记的实时更新,无需加载页面谷歌地图API V3
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 谷歌地图Api和JS代码不工作
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 如何在多承诺链中处理谷歌地图API V3事件
- 谷歌地图api和gMapsLatLonPicker
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 使用谷歌地图api计算距离并将其设置在表格中<td>
- 使用谷歌地图API和phonegap显示当前位置+方向
- 使用谷歌地图api v3自动完成字段(法国大道、邮编、城市)
- 谷歌地图API标记没有标记我的位置
- 使用谷歌地图api 3为MapTypeId.TERRAIN分离按钮
- 在JQuery中使用谷歌地图Api事件/侦听器
- 在Ionic应用程序上使用$.getScript加载谷歌地图Api
- 我该如何解决“;未捕获引用错误:谷歌没有定义"?(谷歌地图API)
- 谷歌地图API-显示具有不同图标的标记
- 如何停止地图移动时,鼠标悬停在标记在谷歌地图API 3