I have used the Google Place details API to get the place details which includes the lat/lng coordinates of a place.
When I launch Google maps using the Universal cross-platform Maps URL, it does not recognize the Place.
For example,
https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJbf8C1yFxdDkR3n12P4DkKt0&key=XXXXXXXX
returns the place details including the following location data:
{
.....
"geometry": {
"location": {
"lat": 27.1750151,
"lng": 78.0421552
},
"viewport": {
"northeast": {
"lat": 27.1770292,
"lng": 78.04537599999999
},
"southwest": {
"lat": 27.16897280000001,
"lng": 78.0388188
}
}
},
.....
"name": "Taj Mahal",
"place_id": "ChIJbf8C1yFxdDkR3n12P4DkKt0",
.....
}
But this data, when used to create a Maps URL with direction map action, does not give the correct place in the destination field.
Google Maps URL : https://www.google.com/maps/dir/?api=1&destination=27.1750151,78.0421552&destination_place_id=ChIJbf8C1yFxdDkR3n12P4DkKt0
The destination is not shown as a place. Only the lat/lng or address is used as below.

The correct/expected result is the following. Look at the destination.

Update
The issue seems to be with the PlaceID not matching the lat/lng coordinates in the Maps URL. There seems to be an inconsistency with lat/lng provided by the Place Details API.
Below URL works
https://www.google.com/maps/dir/?api=1&destination=27.1750151,78.0421552,15z&destination_place_id=ChIJbf8C1yFxdDkR3n12P4DkKt0
but 27.1750151,78.0421552,15z is not the coordinates from the Place details API. The lat/lng returned by PlaceDetails API is 27.1750151,78.0421552.
There is a difference of ,15z which I believe it is the zoom levels.
The destination parameter looks to be trumping the destination_place_id parameter completely when lat/lngs are supplied, causing a reverse geocode on the coordinates. In the following example URL, I'm using a Place ID of ChIJj61dQgK6j4AR4GeTYWZsKWw which corresponds to the Googleplex in Mountain View, CA as the destination_place_id along with the lat/lng for the Taj Mahal as the destination; notice the Googleplex query is ignored, and a reverse geocode is performed getting just the address in India:
https://www.google.com/maps/dir/?api=1&destination=27.1750151,78.0421552&destination_place_id=ChIJj61dQgK6j4AR4GeTYWZsKWw

So, the workaround is to not use a lat/lng as the destination parameter. I've tested with various strings (place names, addresses, gibberish) as that parameter, and the destination_place_id appears to supercede it, which is the desired behavior. When using just a .(period) as a universal value, the name of the place along with the address is supplied:
https://www.google.com/maps/dir/?api=1&destination=.&destination_place_id=ChIJj61dQgK6j4AR4GeTYWZsKWw

https://www.google.com/maps/dir/?api=1&destination=.&destination_place_id=ChIJbf8C1yFxdDkR3n12P4DkKt0

The documentation mentions for destination that The value can be either a place name, address, or comma-separated latitude/longitude coordinates.
If you enter coordinates, I suppose it just does a reverse geocode and displays the corresponding address. So you can input the place name and it will work.
https://www.google.com/maps/dir/?api=1&destination=Taj+Mahal&destination_place_id=ChIJbf8C1yFxdDkR3n12P4DkKt0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With