我使用geocoder gem的.nearby
方法查询我的数据库并返回附近的位置对象。
问题1:第一次加载地图时,没有标记传递给JS,也没有加载地图。如何在不加载标记的情况下解决此问题?
<script type="text/javascript">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.detect_location = true;
Gmaps.map.map_options.center_on_user = true;
Gmaps.map.initialize();
Gmaps.map.markers = ; // BLOWS UP HERE
Gmaps.map.markers_conf.list_container = "markers_list";
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
Gmaps.oldOnload = window.onload;
window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
</script>`
问题2:当用户搜索时,他们的搜索没有可用的附近结果,如何从中显示一个随机位置(现在它加载到海洋的中间)。
问题3:当用户搜索并且没有可用的附近结果时,我是否可以使用浏览器地理位置向附近位置显示其当前位置(我知道并非所有浏览器都支持这种位置)。
答案 0 :(得分:1)
回答1:
宝石中没有错误。
你的这一行让javascript哭了:
@json = nil
确实nil
无效json。
你应该这样做:
@json = [].to_json
回答2
如果您的查询没有返回任何内容,请创建另一个查询以获取随机对象。在那里看不到任何问题。
回答3
来自浏览器的地理定位包含在gem中,您甚至可以成功回调。 See code。但是你必须编写适合自己逻辑的javascript。