0

Rails 3.2.12 で gem "gmaps4rails" を使用しています。map_options で detect_location = "true" を設定しましたが、ユーザーの現在位置を示すマーカーが表示されません。

コードは次のとおりです。

<%= gmaps("map_options" => {"auto_adjust" => true, "detect_location" => true, "center_on_user" => true, "auto_zoom" => false, "radius" => 2500},
  "markers" => {"data" => @json, "options" => {"list_container" => "markers_list","randomize" => true,"max_random_distance" => 10000, "draggable" => true, "dblclick" => "latLng"} }

ユーザーの現在地をマーカーで表示する方法。

私を助けてください。前もって感謝します

4

1 に答える 1

0

gem「gmaps4rails」で、

オプション"detect_location" => trueを指定すると、マップがページにロードされるときに、「アプリケーションが現在地を使用できるようにする」というポップアップがユーザーに表示され、オプションとして「はい」と「いいえ」が与えられます。

ユーザーが「はい」を選択すると、マップはユーザーの位置を中心に配置されます。

ここで、ユーザーの場所のマーカーを表示したいので、独自にマーカーを追加する必要があります。

これは次のように行うことができます。

コントローラ:

geo = request.location
@latitude  = geo.latitude
@longitude = geo.longitude

ページの読み込み時に、このコールバックを使用してユーザーのマーカーを追加できます。

これにより、マップがページに読み込まれるときに現在のユーザーの場所のマーカーが追加されます。

- content_for :scripts do
  %script{:type => "text/javascript"}
    Gmaps.map.callback = function(){
    google.maps.event.addListenerOnce(Gmaps.map.serviceObject, 'idle', function(){
    / add user pin
    var home_pin = [{picture: "current_user.png", width: 32, lat: "#{@latitude}", lng: "#{@longitude}"}];
    Gmaps.map.addMarkers(home_pin)
    }
    )};

これがお役に立てば幸いです。

問題が解決しない場合はお知らせください。

ありがとう。

于 2013-10-27T13:55:55.983 に答える