2016-05-04 7 views
1

Было высказано предположение, что я должен опубликовать более подробный вопрос. Заранее благодарим за любые мысли или рекомендации.расхождения между поиском google map и google map api

В принципе, я пытаюсь получить все те же данные из запроса API, который я получаю от стандартного успешного поиска карт Google.

Если я нахожусь в Google Maps, то я получаю этот богатый результат с большим количеством деталей и изображений для бизнеса. (Пожалуйста, нажмите на эту ссылку, чтобы увидеть все детали я ищу) google maps search result

Если я делаю поиск Google API геокодирования, как это (эллипсы замещающие https: //, потому что я новичок на форуме и Дон» т имеют репутацию для нескольких сообщений ссылок пока):

... maps.googleapis.com/maps/api/geocode/xml?address=TRACTOR+SUPPLY+COMPANY+(HQ)+BRENTWOOD+TN & ключ = MYKEY

Я получаю ответ:

<?xml version="1.0" encoding="UTF-8"?> 
<GeocodeResponse> 
<status>OK</status> 
<result> 
    <type>locality</type> 
    <type>political</type> 
    <formatted_address>Brentwood, TN, USA</formatted_address> 
    <address_component> 
    <long_name>Brentwood</long_name> 
    <short_name>Brentwood</short_name> 
    <type>locality</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Williamson County</long_name> 
    <short_name>Williamson County</short_name> 
    <type>administrative_area_level_2</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Tennessee</long_name> 
    <short_name>TN</short_name> 
    <type>administrative_area_level_1</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>United States</long_name> 
    <short_name>US</short_name> 
    <type>country</type> 
    <type>political</type> 
    </address_component> 
    <geometry> 
    <location> 
    <lat>36.0331164</lat> 
    <lng>-86.7827772</lng> 
    </location> 
    <location_type>APPROXIMATE</location_type> 
    <viewport> 
    <southwest> 
    <lat>35.9325590</lat> 
    <lng>-86.8698999</lng> 
    </southwest> 
    <northeast> 
    <lat>36.0447090</lat> 
    <lng>-86.6868770</lng> 
    </northeast> 
    </viewport> 
    <bounds> 
    <southwest> 
    <lat>35.9325590</lat> 
    <lng>-86.8698999</lng> 
    </southwest> 
    <northeast> 
    <lat>36.0447090</lat> 
    <lng>-86.6868770</lng> 
    </northeast> 
    </bounds> 
    </geometry> 
    <partial_match>true</partial_match> 
    <place_id>ChIJ41xJuq57ZIgRkN_2gzhAfTU</place_id> 
</result> 
</GeocodeResponse> 

У какой-то из тех же данных, но не у всех. Он также предоставляет «placeid». Так что, если я тяну, что и делать «детали» поиск на основе placeid, как это:

... maps.googleapis.com/maps/api/place/details/xml?placeid=ChIJ41xJuq57ZIgRkN_2gzhAfTU & ключ = MyKey

я получить такой результат, который, кажется, как он использует общий placeid, а не что-то конкретное в эту компанию:

<?xml version="1.0" encoding="UTF-8"?> 
<PlaceDetailsResponse> 
<status>OK</status> 
<result> 
    <name>Brentwood</name> 
    <vicinity>Brentwood</vicinity> 
    <type>locality</type> 
    <type>political</type> 
    <formatted_address>Brentwood, TN, USA</formatted_address> 
    <address_component> 
    <long_name>Brentwood</long_name> 
    <short_name>Brentwood</short_name> 
    <type>locality</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Williamson County</long_name> 
    <short_name>Williamson County</short_name> 
    <type>administrative_area_level_2</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Tennessee</long_name> 
    <short_name>TN</short_name> 
    <type>administrative_area_level_1</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>United States</long_name> 
    <short_name>US</short_name> 
    <type>country</type> 
    <type>political</type> 
    </address_component> 
    <geometry> 
    <location> 
    <lat>36.0331164</lat> 
    <lng>-86.7827772</lng> 
    </location> 
    <viewport> 
    <southwest> 
    <lat>35.9325590</lat> 
    <lng>-86.8698999</lng> 
    </southwest> 
    <northeast> 
    <lat>36.0447090</lat> 
    <lng>-86.6868770</lng> 
    </northeast> 
    </viewport> 
    </geometry> 
    <url>https://maps.google.com/?q=Brentwood,+TN,+USA&amp;ftid=0x88647baeba495ce3:0x357d403883f6df90</url> 
    <icon>https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png</icon> 
    <reference>CnRvAAAA7imTJVU7NIR2ZHUHP72h0JegnJJsPWEJYswpzCe_UTTGRmcbEjFCC-it8-GKmaMJiIR_oNShYTUTWGrdJkwbmKws1JY8iX_yItYHaiiKuDLZRDfgF8mK0aACDfjfsVJzJFoJsTGHhrUQcD9KtzrvJBIQK5_0vxAqFpN-8xTs3XP5kxoUMQD0mUqBZ2sO8RLcL-Dkhf2ltn8</reference> 
    <id>667453c8f258729c704ec5ed39d0ab09e79e8cc6</id> 
    <adr_address>&lt;span class=&quot;locality&quot;&gt;Brentwood&lt;/span&gt;, &lt;span class=&quot;region&quot;&gt;TN&lt;/span&gt;, &lt;span class=&quot;country-name&quot;&gt;USA&lt;/span&gt;</adr_address> 
    <place_id>ChIJ41xJuq57ZIgRkN_2gzhAfTU</place_id> 
    <scope>GOOGLE</scope> 
</result> 
</PlaceDetailsResponse> 

этот результат также не содержит полную информацию о простом поиске Google, или даже полной «детали», о которых говорит документация, должны вытекать из поиска «деталей».

Я также пытался делать "TextSearch" с места API следующим образом:

... maps.googleapis.com/maps/api/place/textsearch/xml?query=TRACTOR+SUPPLY+ КОМПАНИЯ + (HQ) + BRENTWOOD + TN & ключ = MyKey

Который возвращает это:

<?xml version="1.0" encoding="UTF-8"?> 
<PlaceSearchResponse> 
<status>OK</status> 
<result> 
    <name>Tractor Supply Company</name> 
    <type>point_of_interest</type> 
    <type>establishment</type> 
    <formatted_address>5401 Virginia Way, Brentwood, TN 37027, United States</formatted_address> 
    <geometry> 
    <location> 
    <lat>36.0322092</lat> 
    <lng>-86.8131363</lng> 
    </location> 
    </geometry> 
    <rating>3.4</rating> 
    <icon>https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png</icon> 
    <reference>CnRpAAAAqLzUG_q4XIngf8xF1dcx-Gofy-uBiBvvZJoLNFFQ1ZoQ83fWx_teRICg_Fbl2dfMd2i1U9pLwYpBFx2fNeB51Yvnb6emO_IaVf7_Ex7HqvbgoawTy06aMuD3H3rr6BITfHg0Qr31a9Fkn2-k3S_UKBIQscPj4YrbojkF7Fw3j8RgMxoUcpgyXPXincWiPyuoTRA6XU9TCJU</reference> 
    <id>1733e3c88f2446c3502000eae8ddf94e63b89602</id> 
    <opening_hours> 
    <open_now>true</open_now> 
    </opening_hours> 
    <photo> 
    <photo_reference>CoQBdwAAANoj0c9wy5uab1aCuip5nlxW1XAU_2wei_XeWUNUM4Cuv3sGTSsyA4zb0qN0OKkaJOAZM7BCJgf4YPtyCvQv4h41UNsxNeT4yOppArK-JOzpOKrJT_WMcbS8c7ormj9-F_Mz5JOLPVV6bWEQKl6gqKvFGVLOpTxP0SEO50TyKffoEhDG0h4EX3lNzLIe9rFOv6nPGhRychAj_sRndkuzHC-cHVgH_wSwEw</photo_reference> 
    <width>3264</width> 
    <height>2448</height> 
    <html_attribution>&lt;a href=&quot;https://maps.google.com/maps/contrib/102180476513775764202/photos&quot;&gt;Jeremy Haggard&lt;/a&gt;</html_attribution> 
    </photo> 
    <price_level>2</price_level> 
    <place_id>ChIJL-npOFt7ZIgRgaOcl-AVuDU</place_id> 
</result> 
</PlaceSearchResponse> 

Опять же, не полный набор данных, доступных от простого поиска Google карте, или даже то, что мы должны быть в состоянии чтобы получить «подробный» поиск.

Итак, есть способ отформатировать запрос API или даже несколько запросов API, которые позволят мне получить все эти же данные? Я могу, конечно, форматировать данные поиска по-разному (например, все строчные буквы или знаки препинания и т. Д.), Но я пробовал это, и это, похоже, не имело значения. Есть ли параметр, который я должен добавить к моему запросу?

Я был в это время, и я застрял. ЛЮБАЯ помощь ВОЗМОЖНО высоко ценится.

Обновление: после комментария geocodezip Я попробовал несколько иной URL-адрес (надеюсь, именно это вы и пытались мне рассказать). Сначала я сделал поиск по геокодированию на тех же терминах сверху, чтобы получить длину lat &, а затем я выполнил поиск по поиску места с помощью лата &, а именно: ... // maps.googleapis.com/maps /api/place/nearbysearch/xml?location=35.9325590,-86.8698999 & радиус = 5000 & имя = ТРАКТОР | SUPPLY & ключ = MyKey

Пробовал несколько различных комбинаций параметров. Результаты были смешанными, но в основном хуже, чем раньше. Никогда не правильный единичный результат, который легко предоставляется при поиске в Google Maps, и часто слишком широкая сеть и слишком много результатов. Вот один пример:

<?xml version="1.0" encoding="UTF-8"?> 
<PlaceSearchResponse> 
<status>OK</status> 
<result> 
    <name>Tractor Supply Co.</name> 
    <vicinity>1101 Hillview Lane, Franklin</vicinity> 
    <type>hardware_store</type> 
    <type>home_goods_store</type> 
    <type>store</type> 
    <type>point_of_interest</type> 
    <type>establishment</type> 
    <geometry> 
    <location> 
    <lat>35.8907643</lat> 
    <lng>-86.8778121</lng> 
    </location> 
    </geometry> 
    <rating>4.5</rating> 
    <icon>https://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png</icon> 
    <reference>CnRlAAAAj6SHHs-lw-RGVupH8Pvd5TH0UxslEwrZfqWt3jlWQoXfQF3F4QwtO6dRHHluYMCmTnUbZkjlb_EjxYdh1xxuKQm1t_HKEb6GFkd5O4etE6IVjVjeC90QsOtCTFi5Y3RkWPbY_bFJxveVulTZ6REhKBIQ311Kf-nQw6elbAclygFtCRoU2ZtPK0g5Arq7CZQ4Yrz_eHJvErc</reference> 
    <id>fbcd6594faab6531269569c223a846280cf5694e</id> 
    <opening_hours> 
    <open_now>true</open_now> 
    </opening_hours> 
    <photo> 
    <photo_reference>CoQBcwAAAAMQPyHJ4tzPHuVwirxpOEdNRduW3YV3qBHKtDPW9TnUWsPx0dyOP9VbUt3Xi2X5iDpiU8KAcpECr6BgI4er67LHi6vIAPPdvKnEVQxEoa0xf7-bWYJC0I8XvOr-pWE-wXth-zxNNrehDhEZ3avD6CCIycxcRMaSt0sbgIAnKf2OEhAkGkj4V_HFnnEsmgXu7xmWGhRqNCKGqYOikAH2bzLG6QC8O6Feew</photo_reference> 
    <width>348</width> 
    <height>348</height> 
    <html_attribution>&lt;a href=&quot;https://maps.google.com/maps/contrib/117785023973427282224/photos&quot;&gt;Mark Grubb&lt;/a&gt;</html_attribution> 
    </photo> 
    <price_level>2</price_level> 
    <place_id>ChIJF4g295N_ZIgRWFMbRGsSfRc</place_id> 
    <scope>GOOGLE</scope> 
</result> 
</PlaceSearchResponse> 
+0

Какую информацию вы отсутствующей ? Если вы выполните «подробный» поиск по месту, указанному в API «Адреса», вы получите остальную информацию? – geocodezip

+0

Если я правильно понимаю ваш вопрос, это показывает второй запрос и блок результатов. Он не включает всю информацию, которую я ожидал. Я отредактировал свой вопрос выше, чтобы было более ясно, что есть ссылка на скриншот результатов Google Maps, которые я бы хотел захватить. Кроме того, если я посмотрю на длинный список деталей, которые должны быть получены из «подробного» поиска, я не вижу их в своих результатах. Вы заметите, что он даже не включает название компании или адрес улицы, а тем более номер телефона. Просто город и государство. – iamozymandius

+0

Ответ на вопрос, который вы отправили в вопросе, касается места в результатах геокодирования, а не для результата API-интерфейса Place (они разные) – geocodezip

ответ

0

Место для геокодированного результата и поиск мест различны. Для получения результатов от место, используйте placeId, извлеченный из направления.

Вы делаете детали просить о (в place_id в ответ геокодера):

<place_id>ChIJ41xJuq57ZIgRkN_2gzhAfTU</place_id> 

Вместо использования (в place_id в ответе API Адресов):

<place_id>ChIJF4g295N_ZIgRWFMbRGsSfRc</place_id> 
+0

Да. Благодарю. Это очень помогло, и я получаю гораздо лучшие результаты таким образом. Но прежде чем я закрою вопрос, он все равно не предоставляет всю информацию, которую я могу получить из поиска в Google Maps. Существует поле описания, которое, как представляется, описывает бизнес, особенно ключевые слова, которые они могли ввести для своей деятельности. Кажется, я не могу получить это от этого поиска.Кроме того, попытка вытащить уличный вид из этого места иногда работает, но часто не дает никаких результатов, когда в поиске карт Google есть один. Даже в известных населенных местах. Любой способ получить все остальное? – iamozymandius