-
-
Save mattradford/bb7679a2671b99ada655 to your computer and use it in GitHub Desktop.
<?php | |
$location = get_field('map_location'); | |
if ( !empty( $location ) ) : | |
$map_url = 'https://www.google.com/maps/dir/?api=1&destination=' . $location['lat'] . ',' . $location['lng']; | |
echo '<a href=". esc_url( $map_url ) . '" rel="nooopener">Get directions</a>'; | |
endif; | |
?> | |
<p>This should produce a link like this:</p> | |
<a href="https://www.google.com/maps/dir/?api=1&destination=51.072159,1.088130">Get directions</a> | |
See <a href="https://developers.google.com/maps/documentation/urls/get-started#directions-action">https://developers.google.com/maps/documentation/urls/get-started#directions-action</a> | |
Agreed, works perfectly. Thanks for posting this!
edit: I found that this does not work with mobile devices, however this works:
<a href="https://www.google.com/maps/place/<?php echo $location['address']; ?>" target="_blank"><?php _e('Get Directions','roots'); ?></a>
Desktop/laptop users have to click the Directions button when the Google Map page loads, but mobile users don't have the Maps app saying it can't use the address
Sweet, thanks for that :)
ryan-noakes answer won't work, you have to replace the spaces by + signs like a google map url would do :
https://www.google.com/maps/place/<?php echo str_replace(' ','+',$location['address']); ?>"
It works everytime for me and is smaller in code than the first answer.
Added urlencode
:
$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( ' ', '+' , $map['address'] ) );
this just saved me a lot of work thank you
Really thanks, but i change
$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( ' ', '+' , $map['address'] ) );
by :
$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( '% ', ' ' , $map['address'] ) );
it's little but its work better :)
$map_link = 'https://www.google.com/maps/search/?api=1&query=' . urlencode( str_replace( '% ', ' ' , $map['address'] ) );
Check the https://developers.google.com/maps/documentation/urls/guide
I use this:
$map_link = 'https://www.google.com/maps/dir/?api=1&destination=' . $location['lat'] .','. $location['lng'];
<a class="directions" href="'. $map_link .'" target="_blank">Chỉ đường</a>
Is there anybody who got it worked? The one JetLewis provided don't work for me, it brings me just to Google Maps without any data from the ACF field
it does not work for me...It send to the page with adress but the map is not centered and there is no marker
@Picpool The Maps API has changed a bit since 2015. I've updated the gist.
To create a link pointing directly to the location in Google Maps
<?php
$location = get_field('luogo_evento');
if (!empty($location)) {
$street = $location['street_name'] . ' ' . $location['street_number'];
$city = $location['city'];
$address = urlencode("{$street}, {$city}");
$lat = $location['lat'];
$lng = $location['lng'];
$map_link = "https://www.google.com/maps/search/?api=1&query=$address";
echo '<a class="directions" href="' . $map_link . '" target="_blank">' . $street . ' - ' . $city . '</a>';
}
?>
Awesome, works perfectly! Thank you.