map_points
を使用して、現在の場所のマーカーをバックエンドからのいくつかと一緒にgmaps4railsマップに追加する方法を理解しようとしてい@map_points = @user.places.to_gmaps4rails
ます。私は次の投稿を見ました:
gmaps4railsのマーカーでユーザーの場所を表示するにはどうすればよいですか?
そこにJavaScriptを実装しようとしましたが、機能していないようです。このコードをjavascriptセクションに追加しましたが、何らかの理由でコールバックが起動していないようです。
= gmaps("map_options" => {"detect_location" => true, "center_on_user" => true, "auto_zoom" => false, "zoom" => 12, "auto_adjust" => true, "markers" => {"data" => @map_points}})
:javascript
Gmaps.map.callback = function() {
Gmaps.map.addMarkers({Lat: Gmaps.map.userLocation.lat(), Lng: Gmaps.map.userLocation.lng(), rich_marker: null, marker_picture:""});
}
編集:これが私が今持っているものですが、何らかの理由でaddListenerOnce
発火していません:
- content_for :scripts do
:javascript
Gmaps.map.callback = function() {
google.maps.event.addListenerOnce(Gmaps.map.getMapObject(),'idle', function(){
navigator.geolocation.getCurrentPosition(add_map_marker,displayError);
});
};
function add_map_marker(position){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
Gmaps.map.addMarkers([{
"lng": lng,
"lat": lat,
"picture": "http://googlemaps.googlermania.com/google_maps_api_v3/en/Google_Maps_Marker.png",
"width": "37",
"height": "34"
}]);
}
function displayError(error){
alert('There is an error displaying location');
}