Android - launch google map via web url

2019-01-13 04:03发布

问题:

On the iPhone, a maps.google.com URL is intercepted and loaded by the native google maps application. I would like do the same on Android, but Google Maps is being loaded in the browser.

So, in a web page, is it possible to have this url http://maps.google.com/maps?saddr=brighton&daddr=timbuktu open in the Android Google Map application ?

I see from this question that you can do it from another app via an Intent. Can you trigger these Intent's from the browser ?

Edit - On further testing, I've found that the user will be prompted to open the link in browser or map app for standard html links to maps.google.maps :

<a href="http://maps.google.com/maps?saddr=brighton&daddr=timbuktu">show route</a>

I'm having the problem because I'm using javascript to set the window.location.href via a Location API callback (so I can get the user's location and then open the map). I've opened a bug report for this.

回答1:

Typing geo:0,0?q=google into the address bar opens the maps activity and searches for google nearby.

I assume this will work from a link in a page, but haven't checked.

a full list of accessible intents here: http://developer.android.com/guide/appendix/g-app-intents.html



回答2:

At this moment I use a javascript function that change the following templates:

'urlTemplates': {
            "default": "http://maps.google.com?q={streetAddress} {addressLocality} {addressRegion} {postalCode} {addressCountry}",
            "ios": "maps:?saddr=Current Location&daddr={streetAddress} {addressLocality} {addressRegion} {postalCode} {addressCountry}",
            "android": "geo:{streetAddress} {addressLocality} {addressRegion} {postalCode} {addressCountry}",
            "windows_phone7": "maps:{streetAddress} {addressLocality} {addressRegion} {postalCode} {addressCountry}",
            "windows_phone8": "bingmaps:?where={streetAddress} {addressLocality} {addressRegion} {postalCode} {addressCountry}",
            "blackberry": "javascript:blackberry.launch.newMap({'address':{'address1':'{streetAddress}','city':'{addressLocality}','country':'{addressCountry}','stateProvince':'{addressRegion}','zipPostal':'{postalCode}'}});"

with what informations I got depending on the device, I do not remember from where I got all the templates and I am sorry for that, and after that I open the the address using window.location.href.

Hope this will help you. Because at the time I need this I spent a lot of time researching it.



回答3:

<html>
  <body>
  <H1>
   <a href="geo:42,2?z=8">Click here for maps</a>
 </h1>
   <BR><BR>
   <a href="geo:53,-9?saddr=(53,-9)&daddr=(42,4)">Click here for route maps</a>
 </body>
</html>

The first click correctly loads the Google App on Android and zooms. In the second click I an trying to replicate a two point route (start address->destination address) and it doesn't seem to work.



回答4:

I really suffered a lot from this but finally got answer .
Don't use href , it will not work .

For Navigation - window.open("google.navigation:q=23.3728831,85.3372199&mode=d" , '_system');

For Search - window.open("geo:0,0?q=pizza" , '_system');

Read Here - https://developers.google.com/maps/documentation/android/intents



回答5:

Try this PHPcode

 echo "<a href='geo:".$lat.",".$lng."?q=".$lat.",".$lng."(".$NameLocationLabel.")'>Open map Native</a>";

Its works for me in phonegap,android and IOS ^^