0

更新:2015 年 4 月 15 日: Google 考虑让最新的 Maps API 向后兼容以解决此问题,但发布了“不会修复”的决定。

更新:2015 年 2 月 11 日:相信这是由 2015 年 2 月 10 日 Google Maps API 3.19 实验版更新引起的问题:https ://developers.google.com/maps/documentation/javascript/ 3.exp/reference

已与 plotGoogleMaps 包的所有者联系 - 可以确认指定 v3.18 确实会生成正常工作的地图。

除非 v3.19 中的问题在成为“发布”版本之前得到修复,否则 plotGoogleMaps 创建的所有先前地图将不再正常运行。

原始帖子: 此问题适用于 R 中 plotGoogleMaps 包的用户和 Google Maps API 支持团队。

从今天晚上(东部时间)开始,使用上述 R 包在 2015 年 2 月 10 日之前创建的地图的行为有所不同。具体来说,当您单击地图上的任何其他图钉时,会使用单击第一个地图图钉时出现的“信息框”。

取自 Milan Kilibarda 教程的可重现 R 代码示例(此处:http ://cran.r-project.org/web/packages/plotGoogleMaps/vignettes/plotGoogleMaps-tutorial.pdf )。

data(meuse)
coordinates(meuse)<-~x+y 
# convert to SPDF 
proj4string(meuse) <- CRS('+init=epsg:28992') 
# adding Coordinate Referent Sys.
# Create web map of Point data 
m<-plotGoogleMaps(meuse,filename='myMap1.htm')

当您单击一个地图图钉时,打开的信息框将与为每个其他地图图钉打开的信息框相同。几个月前由 plotGoogleMaps 创建的 Htm 地图文件现在表现出相同的行为,所以我认为这是更改 Google Maps API 服务的结果。

本教程中另一个有用的示例是使用以下 R 代码绘制 SpatialPolygonsDataFrame:

require(plotGoogleMaps)
require(maptools)
require(RColorBrewer)
nc <- readShapeSpatial(system.file("shapes/sids.shp",package="maptools")[1],
                       proj4string=CRS("+proj=longlat +datum=NAD27"))
m<-plotGoogleMaps(nc,zcol="NWBIR74",filename='MyMap6.htm',
                  mapTypeId='TERRAIN',
                  colPalette= brewer.pal(7,"Reds"), strokeColor="white")

当您单击一个多边形时,信息框会在左上角打开(它应该在单击注册的位置打开)并且当您单击不同的多边形时它不会改变。顺便说一句,在过去,虽然信息框会在左上角打开,但最终会在单击 3 次后移动到单击点。截至今天,信息框的内容没有改变。

这种行为可以通过使用 plotGoogleMaps 加载以前创建的 Google 地图来观察,而不仅仅是今天创建的地图。

我认为上述问题是由谷歌端的变化引起的(因为以前创建的地图现在表现出相同的行为)。我已经在具有不同浏览器(Safari 7.1.3、Firefox 34.0.5、Chrome 40.0.2214.111)的 Mac 和使用 IE 10.0.9200.17183 的 PC 上对此进行了测试,结果相同。

我正在使用 R 3.1.2 和最新版本的 plotGoogleMaps。

如果 Google 地图团队中的任何人读到此内容,您能否验证您的更新是否导致此问题,如果是,我们何时可以期待修复?

提前致谢。

4

1 回答 1

3

Google 开发人员使用 API 更改了一些内容,InfoWindows 现在无法使用 plotGooogleMaps 代码正常工作。这个问题可以通过两种方式解决:

1)从 R-forge 安装新版本(2.2)的包(推荐,我希望它很快就会在 CRAN 上)

install.packages("plotGoogleMaps",repos="http://r-forge.r-project.org")

2) 如果使用 plotGoogleMaps 2.1。更改函数中的 api 链接,例如,如果您使用 CRAN 版本,请将 api 参数设置为 3.18 版本。

# Data preparation
# Point data
data(meuse)
coordinates(meuse)<-~x+y 
# convert to SPDF 
proj4string(meuse) <- CRS('+init=epsg:28992') 
# adding Coordinate Referent Sys.
# Create web map of Point data 
m<-plotGoogleMaps(meuse , api="https://maps.google.com/maps/api/js?sensor=false&v=3.18")

只有在 .html (.htm) 文件中替换 api 才能解决 2014/02/10 之前制作的现有地图的问题。你应该换行

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"> </script>

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&v=3.18"</script>

我希望这有帮助。

2015 年 5 月的新问题。这个旧的 api 不再工作了。所以,如果你用新版本重现地图,你不会有问题,但如果你需要使用旧地图,你应该替换这些行:

替换 - infowindow.content= WITH infowindow.setContent(

替换 - infowindow.position =event.latLng; 有 - ); infowindow.setPosition(event.latLng);

于 2015-02-12T09:15:59.283 回答