我正在尝试在用户当前位置放置一个标记。
但是我甚至无法在回调中获得用户位置。 似乎在浏览器的地理编码之前触发了console.log调用 我做错了什么?
haml view
= gmaps(:map_options => {:center_on_user => true})
- content_for :scripts do
:javascript
Gmaps.map.callback = function () {
console.log(Gmaps.map.userLocation)
}
html输出
<div class="map_container">
<div id="map" class="gmaps4rails_map"></div>
</div>
<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.5&sensor=false&libraries=geometry"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.5/src/markerclusterer_packed.js"></script>
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js"></script>
<script type="text/javascript" charset="utf-8">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.center_on_user = true;
Gmaps.map.initialize();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
window.onload = function() { Gmaps.loadMaps(); };
</script>
<script>
//<![CDATA[
Gmaps.map.callback = function () {
console.log(Gmaps.map.userLocation)
}
//]]>
</script>
答案 0 :(得分:0)
在此次回调时,尚未检索到用户位置,这只表示地图已完成显示。
想一想:用户必须决定他是否接受浏览器地理定位,因此可能需要很长时间。
我不需要回调地理位置成功,我只为地理位置失败创建了一个。
您只需在资源中修补js / coffee,然后在this line调用您需要的任何功能。