@burguy83

Как передать place_id в service.getDetails на картах google api?

Я хочу вытащить детали организации, а именно контакты и отзывы. Для этого необходимо добыть place_id и передать его в service.getDetails. Place_id я нашёл как добыть, а вот передать его не знаю как в js.
var map;
      var service;
      var infowindow;
      var marker;

      function initMap() {

        map = new google.maps.Map(
            document.getElementById('map'), {zoom: 15});

        var request = {
          query: '<?php echo $content['company']['domicilios']['razon_social'];?>,+<?php echo $content['company']['domicilios']['calle'];?>,+<?php echo $content['company']['domicilios']['numero'];?>+<?php echo $content['company']['domicilios']['localidad'];?>+<?php echo $content['company']['domicilios']['provincia'];?>+<?php echo $content['company']['domicilios']['codigo_postal'];?>',
          fields: ['name', 'geometry'],
        };
        console.log(request);

        service = new google.maps.places.PlacesService(map);
          service.textSearch(request,  callback);

        service.findPlaceFromQuery(request, function(results, status) {
          if (status === google.maps.places.PlacesServiceStatus.OK) {
            for (var i = 0; i < results.length; i++) {
              createMarker(results[i]);
            }

            map.setCenter(results[0].geometry.location);
          }
        });

          // Checks that the PlacesServiceStatus is OK, and adds a marker
          // using the place ID and location from the PlacesService.
          function callback(results,  status)  {
              if (status == google.maps.places.PlacesServiceStatus.OK)  {
                  var marker =  new google.maps.Marker({
                      map:  map,
                      place:  {
                          placeId:  results[ 0 ].place_id,  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<здесь лежит place_id
                          location:  results[ 0].geometry.location,

                      }
                  });

              }

          }

          function createMarker(place) {
              var marker = new google.maps.Marker({
                  map: map,
                  position: place.geometry.location
              });

          }

      }

    </script>


А передать его надо вот сюда:
var request = {
          placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',     <<<<<<<<<<<<<<<<<<как сюда передать содержимое этой переменной placeId:  results[ 0 ].place_id
          fields: ['name', 'formatted_address', 'place_id', 'geometry']
        };

        var infowindow = new google.maps.InfoWindow();
        var service = new google.maps.places.PlacesService(map);

        service.getDetails(request, function(place, status) {
          if (status === google.maps.places.PlacesServiceStatus.OK) {
            var marker = new google.maps.Marker({
              map: map,
              position: place.geometry.location
            });
            google.maps.event.addListener(marker, 'click', function() {
              infowindow.setContent('<div><strong>' + place.name + '</strong><br>' +
                'Place ID: ' + place.place_id + '<br>' +
                place.formatted_address + '</div>');
              infowindow.open(map, this);
            });
          }
        });

Подскажите как это осуществляется в js.
Может у кого то есть реализация вывода доп инфы о компании на рабочем примере?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы