Генерация маркеров карты Google с данными из базы данных через JSON - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь создать маркеры на карте, используя данные, хранящиеся в моей базе данных.На данный момент карта отображается, ошибок в консоли нет.Я предполагаю, что либо я не получаю доступ к данным правильно, либо JSON не отформатирован правильно.

В настоящее время не используются гемы для карт, Ruby 2.3.3, Rails 5.1.6, SQLite db

Когда я захожу к riders / json, он отображает массив со всеми данными моего гонщика.

Пытались несколько часов и искали, пробовали разные решения.Моя текущая настройка - та, которая не показывает ошибки и в терминале или при проверке.Я вижу запрос "GET" и "Rider Load SELECT" riders ". * FROM" riders "с ответом 200 в терминале.

Любая помощь будет признательна, или объяснение того, что я оставляюбыло бы здорово.

Ниже приведен файл _map.html.erb, где я генерирую карту, я вызываю его, используя <% = render ("layouts / map")%> на статической странице.

     <script>
  function initMap() {

        var myLatLng = {lat: 40.014, lng: -105.270};

        var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: myLatLng
        });




        $.getJSON("/riders.json", function ( data )  {
            $.each(data, function(key, data) {

            var latLng = new google.maps.LatLng(data.lat, data.lng );

            var marker = new google.maps.Marker({
                position: latLng,
                map: map
                });
            });
        });



    }

  </script>

  <script async defer
     src="https://maps.googleapis.com/maps/api/js? 
     key=AIzaSyAs2tWVlXznbp6ySamqYXot3sd7wNNLuXI&callback=initMap">
  </script>

views / riders / index.json.jbuilder file:

    json.array! @riders do |rider|
    json.lat rider.latitude
    json.lng rider.longitude
    end

controllers / riders_controller:

    class RidersController < ApplicationController
    before_action :set_rider, only: [:show, :edit, :update, :destroy]
    respond_to? :json  #respond_to w/o ? threw an error

    def index
      @riders = Rider.all
      render json: @riders
    end

    def show
      @rider = Rider.where(id: params[:id])
      respond_to do |format|
        format.html
        format.json { render json: @rider }
      end
    end

Это мой первый случай извлечения данных для использованияв API также приветствуются любые ссылки для дальнейшего чтения. Спасибо.

1 Ответ

0 голосов
/ 13 июня 2018

Очень незначительная корректировка решила это ....

Я полагался на файл riders.json, чтобы назначить данные, но это не так.

Я редактировал:

var latLng = new google.maps.LatLng (data.lat, data.lng);

до

var latLng =new google.maps.LatLng (data.latitude, data.longitude);

Вау, время, которое я потратил на упущение этой основной вещи, шокирует ... но я нашел с помощью console.log (JSON.stringify (data.долгота));(и с широтой) генерировал правильные данные, поэтому возникла проблема, которую я не назначил правильно.Я в шоке, я не понял этого вчера.Спасибо за то, кто нашел время, чтобы прочитать это.

...