私は現在、販売担当者追跡ツールを開発しており、ジオコードされたオブジェクトのマーカー配列を地図に表示していません。私はジオコーダーの近くの関数を使用して私の場所からURLを渡された地点のオブジェクトを0.5km見つけました。私の現在のコードは、その半径内にオブジェクトが1つしかない限り動作し、2つ以上のオブジェクトを表示するために配列を使用する必要があることを知っていますが、これは過去2週間にわたって固まっています。Ruby on Rails - Googleマップマーカー配列としてのジオコーダーオブジェクト
stores_controller.rb
def index
@latitude = params[:latitude].to_f
@longitude = params[:longitude].to_f
@stores = current_user.stores
@locations = @stores.near([@latitude, @longitude], 0.5)
end
私の店/ index.html.erb
function initMap() {
<% @locations.each do |store| %>
var lat = <%= store.latitude %>
var lng = <%= store.longitude %>
var mylatlng = {lat: lat, lng: lng}
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: mylatlng
});
var marker = new google.maps.Marker({
position: mylatlng,
map: map,
animation: google.maps.Animation.DROP,
});
google.maps.event.addListener(marker, 'click', function() {
var c = confirm('Would you like to visit this store?')
if (c === true) {
window.location.href = '<%= store_path(store) %>';
}
if (c === false) {
window.location.href = '<%= dashboard_path %>';
}
});
var contentString = 'Please click on this Marker to visit' + ' ' + '<%= store.storename %>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
infowindow.open(map, marker);
});
}
<% end %>
アプリは一度に最大2つのまたは3つのオブジェクトであるだろう設定し、私はJSONことを知っている途中でマップオプションですが、それを避ける方法があることを期待しています。私がマップ・アレイについて読んだリソースはすべて、手作業で配列パラメーターを渡す必要がありますが、動的に行う必要があります。つまり、オブジェクトがrepからrepに変わるように見えます。
ありがとうございました。
私はまだRails、JS、JQuery、Googleマップの両方に新しく、この件に関するチュートリアルを続けています。あなたのコードを試しましたが、エラーは発生しませんが、マップやマーカーは表示されません。 Chromeデベロッパーツールを使用すると、エラーは発生しませんが、うまく動作しないようです。私はまたコードをちょっと試してみましたが、役に立たなかった。マーカーのマーカー配列を使用しなければならないのでしょうか?場所配列に一度に複数のストアが読み込まれるように見えますか?助けてくれてありがとう。 –