Ответ 1
Это промежуточное звено не является окончательным ответом, и продолжение следует)), просто некоторые мысли
Недокументированный метод. (вместо tfid
placeid
)
Веб-сервис API веб-сайтов
В будущем нет гарантии:
https://maps.googleapis.com/maps/api/place/details/json?key=YOUR_API_KEY&ftid=0xd62377123a70817:0x85e89b65fcf7c648&
Задокументированный запрос:
https://maps.googleapis.com/maps/api/place/details/json?key=YOUR_API_KEY&placeid=ChIJFwinI3E3Yg0RSMb3_GWb6IU
Требуется API KEY для этого запроса Настройка ключей API
Ответ от Google: (JSON - легкий синтаксический анализ)
{
"html_attributions" : [],
"result" : {
"address_components" : [
{
"long_name" : "4",
"short_name" : "4",
"types" : [ "street_number" ]
},
{
"long_name" : "Calle Cruz de Piedra",
"short_name" : "Calle Cruz de Piedra",
"types" : [ "route" ]
},
{
"long_name" : "Alacant",
"short_name" : "Alacant",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Alicante",
"short_name" : "A",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Comunidad Valenciana",
"short_name" : "Comunidad Valenciana",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Spain",
"short_name" : "ES",
"types" : [ "country", "political" ]
},
{
"long_name" : "03015",
"short_name" : "03015",
"types" : [ "postal_code" ]
}
],
"adr_address" : "\u003cspan class=\"street-address\"\u003eCalle Cruz de Piedra, 4\u003c/span\u003e, \u003cspan class=\"postal-code\"\u003e03015\u003c/span\u003e \u003cspan class=\"locality\"\u003eAlacant\u003c/span\u003e, \u003cspan class=\"region\"\u003eAlicante\u003c/span\u003e, \u003cspan class=\"country-name\"\u003eSpain\u003c/span\u003e",
"formatted_address" : "Calle Cruz de Piedra, 4, 03015 Alacant, Alicante, Spain",
"geometry" : {
"location" : {
"lat" : 38.3642358,
"lng" : -0.4626489
},
"viewport" : {
"northeast" : {
"lat" : 38.3655847802915,
"lng" : -0.4612999197084979
},
"southwest" : {
"lat" : 38.3628868197085,
"lng" : -0.463997880291502
}
}
},
"icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id" : "ce1aa5a252b86d559268866a6a4858db9bba3dff",
"name" : "Calle Cruz de Piedra, 4",
"place_id" : "ChIJFwinI3E3Yg0RSMb3_GWb6IU",
"reference" : "CmRbAAAAn6NLYXEs-ttLvUlgjnh5aDHt-LR_hXe6JmUN8fzv6MJ7Q50xt_zUU_WlTc3aL_BQc70-1YjEb6Soluro5rA8cIFJG_w08RSr_JWo_SFEFc1Ncme_dKVKsPX6Q0LtO8gWEhACTzabAMLQfM5xt1_BNsywGhSZr0WRGlutqeuRgs-IY41ndk3yoQ",
"scope" : "GOOGLE",
"types" : [ "street_address" ],
"url" : "https://maps.google.com/?q=Calle+Cruz+de+Piedra,+4,+03015+Alacant,+Alicante,+Spain&ftid=0xd62377123a70817:0x85e89b65fcf7c648",
"utc_offset" : 60,
"vicinity" : "Alacant"
},
"status" : "OK"
}
Настройка ключей API
Если ваше клиентское приложение не использует OAuth 2.0, оно должно включать ключ API, когда он вызывает API, который включен в проекте Google Cloud Platform. Приложение передает этот ключ во все запросы API в качестве параметра key = API_key. Чтобы создать ключ API приложения:
- Перейдите в Консоль API.
- В списке проектов выберите проект или создайте новый.
- Если страница API и служб еще не открыта, откройте левую сторону и выберите API и службы.
- Слева выберите Учетные данные.
- Нажмите Создать учетные данные, а затем выберите ключ API.
Примечание. В дополнение к чтению инструкций на этой странице обязательно прочтите Рекомендации по безопасному использованию ключей API.
(черновик) не удаляется для истории
только для теста! временное решение:
curl "https://www.google.com/maps/place/data=!4m2!3m1!1s0xd62377123a70817:0x85e89b65fcf7c648" -s -b -L -H "user-agent: Googlebot/2.1 (+http://www.google.com/bot.html)" | FIND """0xd62377123a70817:0x85e89b65fcf7c648"","
Ответ в командной строке: , [ "0xd62377123a70817: 0x85e89b65fcf7c648", NULL, NULL, [NULL, NULL, 38,364235799999996, -0,4626489]
CURL там при необходимости
поиск будет продолжен....
Я думаю, что это (0xd37377123a70817: 0x85e89b65fcf7c648) является идентификатором объекта карты в базе данных GoogleMap. Когда клик URL1.
если вам нужны географические координаты, тогда нажмите URL2, пожалуйста и следующий, если вам нужна ссылка как EMBED без проблем, результат ниже:
src="https://www.google.com/maps/embed?pb=
!1m18
!1m12
!1m3
!1d782.0856626047412
!2d-0.46311117079625247
!3d38.36419405026406
!2m3
!1f0
!2f0
!3f0
!3m2
!1i1024
!2i768
!4f13.1
!3m3
!1m2
!1s0x0%3A0x0
!2zMzjCsDIxJzUxLjEiTiAwwrAyNyc0NS4yIlc
!5e0
!3m2
!1ses
!2ses
!4v1509474812934"
это FTID (0xd62377123a70817: 0x85e89b65fcf7c648)
Параметр ftid является уникальным идентификатором для определенных объектов карты, так же как fid и cid.
Места, которые должны находиться на карте, но не являются частью локальной базы данных, идентифицируются параметром ftid. Невозможно утверждать эти типы объектов Карты через Места.
API Google Места и другие работают с place-id
for (Calle Cruz de Piedra, 4 03015 Alicante) place-id
= ChIJFwinI3E3Yg0RSMb3_GWb6IU
(place → place-id)
https://developers.google.com/maps/documentation/javascript/examples/places-placeid-finder
и Reverse (place-id- > place)
https://developers.google.com/maps/documentation/javascript/examples/geocoding-place-id
ТЕПЕРЬ:
place-id
до location
- ok
https://developers.google.com/maps/documentation/geocoding/intro?hl=en#ReverseGeocoding
FTID
до location
-? вопрос открыт... для быстрого и автоматического
через Google:
https://google.com/maps?ftid=0xd62377123a70817:0x85e89b65fcf7c648
https://www.google.com/maps/place/Calle+Cruz+de+Piedra,+4,+03015+Alicante,+%D0%98%D1%81%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F/
@38.3642358,-0.4648376
,17z/data=!3m1!4b1!4m5!3m4!1s0xd62377123a70817:0x85e89b65fcf7c648!8m2!3d38.3642358!4d-0.4626489
для Атлантического океана тоже:
https://google.com/maps?ftid=0xadd28c30ec90d79%3A0x44652457c0696504
и два слова о Google Maps Embed API:
<iframe
src="https://www.google.com/maps/embed?pb=
!1m3
!3m2
!1m1
!1s0xd62377123a70817%3A0x85e89b65fcf7c648"
width="400" height="400" frameborder="0" style="border:0" allowfullscreen>
</iframe>