Ruby on rails 带有OpenLayers的Gmaps4Rails在单击标记时出现JS错误:this.serviceObject未定义
我在Gmaps4Rails Gem版本1.5.2中使用OpenLayers时遇到问题。单击标记时,我希望显示典型的详图索引信息框。不幸的是,我遇到以下JavaScript错误: 此.serviceObject未定义 Firebug调用文件gmaps4rails.openlayers.js responsable的第195行:Ruby on rails 带有OpenLayers的Gmaps4Rails在单击标记时出现JS错误:this.serviceObject未定义,ruby-on-rails,ruby-on-rails-3,openlayers,gmaps4rails,Ruby On Rails,Ruby On Rails 3,Openlayers,Gmaps4rails,我在Gmaps4Rails Gem版本1.5.2中使用OpenLayers时遇到问题。单击标记时,我希望显示典型的详图索引信息框。不幸的是,我遇到以下JavaScript错误: 此.serviceObject未定义 Firebug调用文件gmaps4rails.openlayers.js responsable的第195行: return this.serviceObject.addPopup(popup); 如果我改用谷歌地图作为API提供者,一切都很好。显示和隐藏信息框效果很好。这就是为什
return this.serviceObject.addPopup(popup);
如果我改用谷歌地图作为API提供者,一切都很好。显示和隐藏信息框效果很好。这就是为什么我假设错误一定在gmaps4rails.openlayers.js中的某个地方
我在Mac上试用了最新的FF和Chrome浏览器
为了在简化的示例中再现错误,我在Rails 3.2应用程序的公用文件夹中创建了一个简单的HTML页面,并直接链接了所需的JS和CSS文件。为了创建HTML页面,我复制了我的Breake Rails应用程序的HTML代码,并对其进行了缩减
Gmaps.map=新的Gmaps4RailsOpenlayers;
Gmaps.load_map=函数{
Gmaps.map.map_options.provider=openlayers;
Gmaps.map.initialize;
Gmaps.map.markers=[
{说明:这应该在弹出窗口中,
身份证号码:117979030,
拉脱维亚:39.5715,
液化天然气:2.64694}
];
Gmaps.map.create_标记;
Gmaps.map.adjustMapToBounds;
Gmaps.map.callback;
};
Gmaps.oldOnload=window.onload;
window.onload=函数{
Gmaps.triggerOldOnload;
Gmaps.loadMaps;
};
不幸的是,我找不到一个成功的Gmap4Rails-Openlayers web集成的工作示例。我是否缺少一个强制参数
提前谢谢。这是一个bug
替换:
return this.serviceObject.addPopup(popup);
与:
我将很快推出一个修复程序,谢谢,而且+1很好。修复确实解决了JavaScript错误。非常感谢你。不幸的是,我遇到了另一个问题,我认为这是一个错误:在打开和关闭信息框后,我无法再次打开它。我试过Chrome和FF。请让我知道,如果我应该打开这个问题或你认为我的第一个问题的这一部分?嗯,看看我的主分支,同一个错误,使删除标记失败。这就是导致这一问题的原因,我想我明白了:是的。大师使事情变得更好。但一开始我并没有看到它,因为我被另一只小虫子困住了。为了关闭信息框,我使用了X图标,然后再次单击标记。这不会再次打开信息框,直到您在地图上的标记外单击一次,然后再次单击该标记。据我所知,这不是gmaps4rails,而是OpenLayers的bug。所以,非常感谢你。
return this.map.addPopup(popup);