38

HeIIo, using google map API with search I'm able to find a certain place and then store it's details. However, the array doesn't contain google maps link which would open this place on google maps.

Via API I receive place_id which, as I feel, should be enough to build a full google maps link; however, I can't find a way to do that. Can anyone advise me on how to do that.

Thank you for your time.

xomena
  • 29,323
  • 6
  • 81
  • 114
A L
  • 459
  • 1
  • 4
  • 6
  • 2
    I'm having this same issue in an Android app I'm building. If the answer below is correct, it seems ridiculous to have to use the returned place_id to create another URL request to get the correct CID – Wayne Johnson Apr 22 '16 at 15:37

7 Answers7

132

Try below syntax. I hope it helps

https://www.google.com/maps/place/?q=place_id:ChIJp4JiUCNP0xQR1JaSjpW_Hms
Sedat Kumcu
  • 1,865
  • 1
  • 15
  • 13
28

Here is an official url to search for a placeId with a fallback to an address if the placeId does not exist

https://www.google.com/maps/search/?api=1&query=<address>&query_place_id=<placeId>

no token required, works on Android, iOS (as well as iOS 11) and web

Kirill Kulakov
  • 9,714
  • 9
  • 48
  • 65
  • Confirmed - works well! The address part is required but doesn't do anything it seems. I was able to enter anything in there and have the lookup still work. – cronoklee Feb 21 '19 at 08:45
  • The address is a backup, if the google place ID will be delete, google maps will fallback to the address. you can try that by providing an invalid place id – Kirill Kulakov Feb 22 '19 at 15:39
  • Best solution - on desktop opens Google Maps website, on mobile (Android and iOS) opens Google Maps application. – haz111 May 16 '19 at 13:53
  • This solution works, thanks, but I get "Mixed content" warnings when I eventually land on the listing: `Mixed Content: The page at 'https://www.google.com/maps/search/?api=1&query=%3Caddress%3E&query_place_id=ChIJoT5E1FlgLxMR1qP3Z4NRVBY' was loaded over HTTPS, but requested an insecure image 'http://www.google.com/maps/vt/data=zYuhVnS8JosXRxoH3bbPoEAByijPZHC_yNruvFpujaxqT6-OKmrS1cV2ft0f8dQNh7_HX2epahFbnLuLDgS39EdmrW_ZHt-eAfKRxDSXoaOf3BHtn5RaLfE26v_G06ja4OLDXnSi_nubeVjJPp0'. This content should also be served over HTTPS.` – Guido Walter Pettinari Apr 16 '20 at 15:52
  • query is required based on the docs https://developers.google.com/maps/documentation/urls/get-started – Henrik Bøgelund Lavstsen Aug 03 '21 at 07:04
11

There is a way of always getting the right URL but it does require an additional request.

You can use the place_id to get the place details with https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

The response from that has a ['result']['url'] field which always opens up the right place. eg. https://maps.google.com/?cid=10254754059248426663

Bartek Juszczak
  • 123
  • 1
  • 6
9

There is no documentation for the expected parameters on https://www.google.com/maps/place , so this may only be a workaround(at least it currently works for me).

The following URL-format seems to give the desired result in most cases:

https://www.google.com/maps/place/[place-name]/@[latitude],[longitude],[zoom]z/

You may create this URL based on the place-name and the place-geometry

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>
Dr.Molle
  • 115,009
  • 15
  • 189
  • 197
1

You can use google embed API, and take src as a link: eg:

 https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY
  &q=place_id:YOUR_PLACE_ID

Docs: https://developers.google.com/maps/documentation/embed/guide#place_mode

TomoMiha
  • 1,006
  • 1
  • 12
  • 11
1

You can use google embed API, and take src as a link: eg:

https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJN1t_tDeuEmsRUsoyG83frY4&key=YOUR_API_KEY

Kavos Khajavi
  • 173
  • 12
1

What worked for me without place_id

https://www.google.com/maps/search/<search term>/@<coordinates>,<zoom level>z

Example

https://www.google.com/maps/search/Jouvay+Night+Club/@40.6961111,-73.8041667,15z
atazmin
  • 3,144
  • 1
  • 22
  • 12