Я использую google maps api v3 с Ruby на рельсах 3.1.У меня есть следующая модель:
class Business < ActiveRecord::Base
attr_accessible :business_name, :address, :city_id,
:latitude, :longitude, :zipcode
Часть моего представления о бизнесе представлена здесь:
%style{:type => "text/css"}
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
%script{:type => "text/javascript",
:src => "http://maps.googleapis.com/maps/api/js?v=3.6&sensor=false"}
%script{:type => "text/javascript"}
function initialize() {
var latlng = new google.maps.LatLng(#{@business.latitude}, #{@business.longitude});
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var contentString = "#{@business.business_name}"
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: latlng,
draggable:true,
animation: google.maps.Animation.DROP,
title:"#{@business.business_name}"
});
// To add the marker to the map, call setMap();
marker.setMap(map);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
google.maps.event.addListener(marker, 'dragend', function() {
var latitude = marker.getPosition().lat();
var longitude = marker.getPosition().lng();
// use Ajax to save latitude, longitude in the database
}
}
google.maps.event.addDomListener(window, 'load', initialize);
%div#map_canvas{:style => "width:500px; height:350px"}
Я могу перетащить маркер, но все равно не могу сохранитьновая позиция в базе данных (mysql 2.8.1).Я нашел немного JavaScript (см. Строки вокруг var latitude = marker.getPosition (). Lat ();), но так как мои знания JavaScript очень скудны, я понятия не имею, как сохранить новую позицию маркера в базе данных.В идеале я хотел бы иметь ссылку «сохранить» в моем информационном окне, которая бы подтверждала сохранение новой широты и долготы в базе данных.
Кто-нибудь знает, как это сделать?Заранее большое спасибо за помощь!