Как использовать пагинацию в Google Maps и Ajax - PullRequest
0 голосов
/ 02 июля 2018

У меня есть API, где нумерация страниц из-за большого количества данных. Сейчас я пытаюсь сделать Google Maps, где я использую API для получения лат и lng из базы данных. Я все еще получаю только первую страницу данных API. Что не так с моим кодом? Что я должен изменить. Пожалуйста помоги. Я буду рад вам.

Привет. У меня есть API, где нумерация страниц из-за большого количества данных. Сейчас я пытаюсь сделать Google Maps, где я использую API для получения лат и lng из базы данных. Я все еще получаю только первую страницу данных API. Что не так с моим кодом? Что я должен изменить. Пожалуйста помоги. Я буду рад вам.

<script>
  function initMap(map) {
    var start_point = new google.maps.LatLng(27.772321, 1.803125);

    // Creating a new map
    var map = new google.maps.Map(document.getElementById("companies-map"), {
      center: start_point,
      zoom: 2,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    function setMarkerPoints(map) {
      var bounds = new google.maps.LatLngBounds();
      var mc = [];
      var infoWindow = new google.maps.InfoWindow();

      url = '/api/companies/map/',
        $.ajax({
          type: "GET",
          url: url,
          dataType: "json",
          success: function(data, pagination) {
            $.each(data.results, function(marker, data) {
              var latLng = new google.maps.LatLng(data.point.latitude, data.point.longitude);

              bounds.extend(latLng);

              // Creating a marker and putting it on the map
              var marker = new google.maps.Marker({
                position: latLng,
                animation: google.maps.Animation.DROP,
                map: map,

              });

              google.maps.event.addListener(marker, 'click', function() {
                infoWindow.setContent('<a href="' + data.title + '" class="text-primary hover-dark">' + data.name + '</a><br>' + data.name);
                infoWindow.open(map, marker);
              });

              mc.push(marker);
            });

            if (pagination.hasNextPage) {
              pagination.nextPage();
            };

            new MarkerClusterer(map, mc, {
              imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
            });
          },
          error: function(data) {
            console.log('Please refresh the page and try again');
          }
        });

      //END MARKER DATA

      // end loop through json
    }
    setMarkerPoints(map);
  }
  google.maps.event.addDomListener(window, 'load', renderGoogleMap);
  renderGoogleMap();
</script>

СПАСИБО ТАКОЕ

1 Ответ

0 голосов
/ 02 июля 2018

Вам необходимо создать объект PlaceSearchPagination для доступа к дополнительным страницам. Объект создается с помощью функции обратного вызова.

https://developers.google.com/maps/documentation/javascript/places#place_search_responses

Взгляните на раздел «Доступ к дополнительным результатам», в частности, под комментариями «// Создать службу мест» и «// Выполнить поиск по соседству».

...