0

Я пытаюсь создать блог Rails, который отображает местоположение на карте Google, используя адрес, принадлежащий объекту в базе данных. я использовал gmaps.js, с помощью этого сценария в голове:gmaps.js геокодер не работает?

<head> <script src='https://maps.google.com/maps/api/js?sensor=true'></script> </head> 

И парциальное что я рендеринг выглядит следующим образом:

<script> 
    var map = new GMaps({ 
    div: '#map', 
    lat: -12.043333, 
    lng: -77.028333, 
    scrollwheel: false, 
    draggable: false, 
    clickable: true 
}); 

    GMaps.geocode({ 
    address: "<%= @post.address %>", 
    callback: function(results, status) { 
    if (status == 'OK') { 
     var latlng = results[0].geometry.location; 
     map.setCenter(latlng.lat(), latlng.lng()); 
     map.addMarker({ 
     lat: latlng.lat(), 
     lng: latlng.lng() 
     }); 
    } 
    } 
}); 
    </script> 

Сейчас парциальные отображает карту, но он не отображает местоположение, связанное с @post, хотя <%= @post.address %> действительно отображает адрес вне контекста карты.

Может ли кто-нибудь помочь мне с этим? Я уверен, что это должна быть относительно простая проблема, но я не могу понять это. Любая помощь будет очень высоко ценится.

Заранее спасибо.

+0

Что вы подразумеваете под этим: хотя <% = @ post.address%> отображает адрес вне контекста карты? также вы могли бы поделиться скриншотом – oreoluwa

+0

Я протестировал его в view.html.erb, чтобы проверить, что «.address» не равен нулю, и это не ноль. Поэтому я считаю, что проблема заключается в коде gmaps. Я могу поделиться изображением, если вы действительно этого хотите, но это всего лишь карта на странице, отображающая некоторые координаты по умолчанию. –

ответ

0

Я думаю, вы должны проверить, что адрес может быть привязан к геокодированию с помощью API Google. Вы можете опробовать адрес, используя GMaps playground here. Когда я использовал свой длинный адрес, я обнаружил, что это не геокодирование, но он нашел более короткий адрес довольно быстро.

Смежные вопросы