HeIIo、検索でgoogle map APIを使用して、特定の場所を見つけて詳細を保存できます。ただし、配列には、Googleマップでこの場所を開くGoogleマップのリンクが含まれていません。
APIを介して、place_idを受け取ります。これは、Googleマップの完全なリンクを作成するのに十分だと思います。しかし、私はそれを行う方法を見つけることができません。誰でもそれを行う方法について私に助言できますか?.
お時間をいただきありがとうございます。
以下の構文を試してください。それが役に立てば幸い
https://www.google.com/maps/place/?q=place_id:ChIJp4JiUCNP0xQR1JaSjpW_Hms
placeId
が存在しない場合にaddress
にフォールバックしてplaceId
を検索するための公式URLは次のとおりです
https://www.google.com/maps/search/?api=1&query=<address>&query_place_id=<placeId>
トークンは不要で、Android、iOS(およびiOS 11)とWebで機能します
常に正しいURLを取得する方法はありますが、追加のリクエストが必要です。
Place_idを使用すると、https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID
で場所の詳細を取得できます
それからの応答には、常に正しい場所を開く['result'] ['url']フィールドがあります。例えば。 https://maps.google.com/?cid=10254754059248426663
https://www.google.com/maps/place には予想されるパラメータのドキュメントがないため、これは回避策にすぎない可能性があります(少なくとも現在のところ私にとっては有効です)。
次のURL形式は、ほとんどの場合に望ましい結果をもたらすようです。
https://www.google.com/maps/place/[place-name]/@[latitude],[longitude],[zoom]z/
場所の名前と場所のジオメトリに基づいてこのURLを作成できます
function initialize() {
var ac = new google.maps.places.Autocomplete(document.getElementById('pac'));
google.maps.event.addListener(ac, 'place_changed', function() {
var place = this.getPlace(),
link = document.getElementById('link');
if (!place.geometry) {
link.textContent = '';
} else {
var zoom = 17,
url = 'https://www.google.com/maps/place/' +
encodeURIComponent(place.name) + '/@' +
place.geometry.location.toUrlValue() + ',' +
zoom + 'z/';
link.href = link.textContent = url;
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places">
</script>
<input id="pac" />
<br/>
<a id="link" href="" target="_blank"></a>
Google embed APIを使用して、srcをリンクとして取得できます。例:
https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY
&q=place_id:YOUR_PLACE_ID
ドキュメント: https://developers.google.com/maps/documentation/embed/guide#place_mode