这个问题不是为什么中国大陆的坐标不正确。我已经知道中国的法律背后有他们的秘密算法,但更重要的是,中国的服务器必须用来准确地绘制中国的地图数据。
根据谷歌的说法,他们的中文服务器托管在maps.google.cn
,而世界其他地方使用maps.google.com
(注意不同的TLD)。
我希望能够使用.com
作为默认值嵌入地图,并在查看中国时切换到.cn
。我可以进行地理定位查询以确定浏览器位置并加载相关API,这对中国用户来说效果很好,但这对中国以外的用户(或使用VPN的用户)在查看大陆时不起作用。 / p>
据我所知,在同一文档中加载和使用这两种API是不可能的。如果有人知道如何解决这个问题,请发帖回答。接下来最好的事情是为用户提供一个链接,实际上是使用正确的API重新加载页面。
所以,我的问题。在查看Google maps in a browser时,地图右下角包含谷歌页脚及其版权和条款。此外,至少对我来说,有maps.google.cn
的链接。然而,在我自己的代码和我在网上发现的每个嵌入式示例中,它都不存在。更改网址中传递的region
和language
无效。
如何将此链接显示在我自己的嵌入式地图中?或者,“谷歌在中国”问题还有另一种解决方法吗?
答案 0 :(得分:3)
您可以使用的一种技术是使用JavaScript动态加载Maps API。您可以动态构建一个<script src="...">
标记,而不是在网站中对 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/...
值更改为myDf %>% mutate_each_( funs(as.numeric(.)), names( .[,sapply(., is.integer)] ))
。