Я хочу отображать карты google с центром в местоположении пользователя. Я готов использовать gmaps4rails
и geokit-rails
драгоценных камней, потому что я думаю, что это самые лучшие.RoR: Как получить lat и lng с помощью geokit-rails
То, что я до сих пор является инициализация карты:
<div style='width: 800px;'>
<div id="map" style='width: 800px; height: 400px;'></div>
</div>
<script>
$(document).ready(function(){
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers([
{
"lat": 0,
"lng": 0,
"picture": {
"url": "https://addons.cdn.mozilla.net/img/uploads/addon_icons/13/13028-64.png",
"width": 36,
"height": 36
},
"infowindow": "hello!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
});
</script>
, который работает отлично. Теперь проблема состоит в том, чтобы получить широту и длину на основе IP-адреса пользователя. Это то, что я пытаюсь, но я не получаю никакого результата. В контроллере я стараюсь, чтобы получить место, используя geokit драгоценный камень, но он не:
def view
@location = IpGeocoder.geocode('181.169.135.95') #I know here I should use `request.remote_ip`, but as I am on localhost I can't
end
Я получил это от geokit github, но он не работает.
You can obtain the location for an IP at any time using the geocoder as in the following example:
location = IpGeocoder.geocode('12.215.42.19')
where Location is a GeoLoc instance containing the latitude, longitude, city, state, and country code. Also, the success value is true.
Я получаю следующее сообщение об ошибке: uninitialized constant WineryController::IpGeocoder
. Может ли кто-нибудь объяснить мне, что это значит, и как идти дальше? Я подозреваю, что это может быть что-то действительно глупое, но я все еще новичок в рельсах.
попробовать '@location = :: IpGeocoder.geocode ('181.169.135.95')' –
@BradWerth Я попробовал, и я получил 'неинициализированным постоянной IpGeocoder' –
Это звучит, как вы missing a require –