Создайте перетаскиваемые маркеры и сохраните их в базе данных.

Я хочу знать, можем ли мы в Gmaps4Rails создавать на нем перетаскиваемые маркеры, точно так же, как мы делаем это с помощью Geocoder и т. д.

Кроме того, могу ли я отобразить общую html-форму со списком данных из маркеров внутри информационного окна?

Спасибо всем!


person pLpB    schedule 04.03.2014    source источник
comment
В gmaps4rails нет ограничений: он предоставляет то же, что и карты Google. Так что да на ваши вопросы.   -  person apneadiving    schedule 05.03.2014
comment
Если хотите более подробный ответ, задайте более подробный вопрос с кодом   -  person apneadiving    schedule 05.03.2014
comment
Не могли бы вы поделиться светом? Я пытаюсь использовать скрипты «Javascript goodies», но это не работает, или я размещаю код не в том месте (я использую этот пост как guide) Можете ли вы показать мне подробную версию того, как сделать перетаскиваемый маркер? Было бы очень признательно. Спасибо. (:   -  person pLpB    schedule 05.03.2014
comment
Какую версию драгоценного камня вы используете?   -  person apneadiving    schedule 05.03.2014
comment
Кстати, проверьте примеры здесь: apneadiving.github.io это ответ на ваш вопрос об информационном окне   -  person apneadiving    schedule 05.03.2014
comment
Здесь у меня есть gmaps4rails 2.1.0 с Rails 4.0.3 и Ruby 2.0.0. Да, я проверил страницу, и она близка к тому, что мне нужно.   -  person pLpB    schedule 05.03.2014


Ответы (1)


Это отвечает на ваши вопросы:

var handler = Gmaps.build('Google');
handler.buildMap({ provider: { }, internal: {id: 'map'}}, function(){
  var json_data = [
    {
      id:  1,
      lat: 0,
      lng: 0,
      infowindow: "<div style='color:red;'>Foo</div>" //this html is properly disaplayed
    }
  ];

  //create draggable markers (pass google maps options aas a second arg)
  var markers = handler.addMarkers(json_data, { draggable: true});

  //add markers to original json
  _.each(json_data, function(json, index){
    json.marker = markers[index];
  });

  //add dragend event to markers, triggered when you drop them
  _.each(json_data, function(json){
    google.maps.event.addListener(json.marker.getServiceObject(), "dragend", function(event) {
      var lat = event.latLng.lat();
      var lng = event.latLng.lng();
      console.log('Marker with id: ' + json.id + ' dropped hat lat: ' + lat + ' and lng: ' + lng)
    });
  });
});
person apneadiving    schedule 06.03.2014
comment
Более менее. В смысле, это было только при добавлении новой Позиции на карту. Когда он был в листинге, он должен был нормально работать, как в вашем примере. Кстати, как в этой версии заставить markers = handler.addMarkers(<%=raw @hash.to_json %>); работать в этом примере? Спасибо за помощь человеку! Вот вам ‹3 - person pLpB; 14.03.2014