5

我的 Web 应用程序显示了一个带有地标的 Google 地图,该地标显示了一个越野位置。我正在将其转换为在移动设备上运行。

我可以使用以下 PHP 代码和链接在 IOS 和 Android 中成功打开本机地图应用程序。(在运行 Android 4.1.2 的三星 Galaxy S2 上测试):

$latlong ='-28.546604,153.540777';
echo '<a href="http://maps.apple.com?daddr='.$latlong.'">Take Me There</a>';

问题是它没有在显示越野位置的本地谷歌地图上放置任何地标。它只显示行驶路线,终点在最近的街道。无论我单击底部的导航或方向选项,结果都相同。

我还使用这样的直接(仅限 Android)链接对其进行了测试,但没有任何区别:

<a href="http://maps.google.com/maps?daddr='.$latlong.'">

我尝试了这种形式的链接:

<a href="geo:'.$latlong.'">Take Me There</a>

它直接进入谷歌地图本机,而不询问我更喜欢使用哪个应用程序的任何初始问题,但它只显示一个空白地图屏幕。如果我单击地图右上角的图标,它将显示正常的导航屏幕,但以我当前的位置为中心,并且我的目的地没有地标。

请问有什么方法可以强制本机应用程序在确切指定的越野纬度/经度位置显示地标?

自己找到了答案。由于这个stackoverflow答案,解决方案非常简单

事实上,这正是我在 PC 上显示 Google 地图的旧代码正在做的事情。(Doh!)只需在 latlong 后添加一个(标签)值即可显示要显示的地标。像这样:

$dest = 'my destination';
$latlong ='-28.546604,153.540777';
echo '<a href="http://maps.apple.com?daddr='.$latlong.'('.$dest.')">Take Me There</a>';

经过测试并在 Android 4.1.2 上运行良好(即使链接指向 Apple,它也足够聪明,可以使用谷歌地图应用程序。我认为它也适用于 Apple。

4

1 回答 1

0

function myNavFunc(){
    // If it's an iPhone..
    if( (navigator.platform.indexOf("iPhone") != -1) 
        || (navigator.platform.indexOf("iPod") != -1)
        || (navigator.platform.indexOf("iPad") != -1))
         window.open("maps://maps.google.com/maps?daddr=lat,long&amp;ll=");
    else
         window.open("http://maps.google.com/maps?daddr=lat,long&amp;ll=");
}
<a style="cursor: pointer;" onclick="myNavFunc()">Take me there!</a>

于 2016-10-03T09:36:25.713 回答