-1

Я разрабатываю приложение, в котором мне нужно делать чек-записи в различных местах, предоставляемых Google API. проблема в том, что API не предоставляет все зарегистрированные места. Я добавил все типы мест в близлежащие параметры поиска, но все же маркеры не появляются в этих местах. Если кто-нибудь знает, пожалуйста, помогите. следующий код для ближайшего поиска. Я добавил много мест, но все еще не получаю маркеров.Google API, не показывающий маркер во всех зарегистрированных местах

function loadNearByPlaces(latLng) { 
    var service = new google.maps.places.PlacesService(map); 
    service.nearbySearch({ 
     location: latLng, 
     radius: 5000, 
     // type: ['any'] 
     types: ['airport', 'amusement_park', 'aquarium', 'art_gallery', 'bar', 'book_store', 'bowling_alley', 'cafe', 'casino', 'church', 
      'clothing_store', 'department_store', 'gym', 'hospital', 'library', 'lodging', 'museum', 'night_club', 'park', 'restaurant', 'rv_park', 
      'school', 'shopping_mall', 'stadium', 'university', 'zoo', //my own types, 
      'bank', 'bakery', 'bus_station', 'car_wash', 'city_hall', 'post_office', 'shopping_mall', 'subway_station', 'university', 
      'furniture_store', 'fire_station', 'embassy', 'pharmacy', 'convenience_store', 'shoe_store', 'spa', 'train_station', 'transit_station', 
      'police', 'doctor', 'courthouse', 'roofing_contractor', 'hair_care', 'local_government_office', 'jewelry_store', 'lawyer', 'locksmith', 
      'accounting', 'cemetery', 'car_dealer', 'florist', 'home_goods_store', 'store', 'synagogue', 'laundry', 'insurance_agency', 'point_of_interest', 
      'post_box', 'colloquial_area', 'food', 'general_contractor', 'intersection', 'locality', 'neighborhood', 'subpremise', 'place_of_worship', 
      'political', 'administrative_area_level_1', 'administrative_area_level_2', 'administrative_area_level_3', 'administrative_area_level_4', 
      'administrative_area_level_5', 'colloquial_area', 'country', 'establishment', 'finance', 'floor', 'food', 'geocode', 'health', 'intersection', 'locality', 'natural_feature', 
      'neighborhood', 'place_of_worship', 'political', 'point_of_interest', 'post_box', 'postal_code', 'postal_code_prefix', 'postal_code_suffix', 'postal_town', 
      'premise', 'room', 'route', 'street_address', 'street_number', 'sublocality', 'sublocality_level_4', 'sublocality_level_5', 'sublocality_level_3', 
      'sublocality_level_2', 'sublocality_level_1', 'subpremise', 'Indiana Convention Center' 
     ] 
    }, callback); 
+3

Пожалуйста, разместите соответствующий код и ошибки. – Spechal

+0

Я добавил код @Spechal. Извините, я не смог загрузить его вчера –

ответ

0

На самом деле я получил решение после некоторых исследований. Карты Google api обеспечивают 20 мест за звонок и могут возвращать до 60 местоположений. нам не нужно указывать типы в параметрах, а нам нужно снова и снова вызывать разбивку на страницы (это будет называться 3 раза). Каждый вызов приведет к добавлению 20 маркеров. Я изменил код как

function loadNearByPlaces(latLng) { 
    var service = new google.maps.places.PlacesService(map); 
    service.nearbySearch({ 
     location: latLng, 
     radius: 100 
    }, callback); 
} 

function callback(results, status, pagination) { 
    if (status === google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
      createMarker(results[i]); 
      // places.push(results[i]) 
     } 
     if (pagination.hasNextPage) { 
      pagination.nextPage(); 
     } 
    } 
} 
Смежные вопросы