gpt4 book ai didi

android - 谷歌地图启动链接,源地址为 "Current Location"

转载 作者:行者123 更新时间:2023-11-30 04:00:03 26 4
gpt4 key购买 nike

我在创建必须将“当前位置”字符串作为源地址的 Google map 启动链接时遇到问题。

问题是当需要生成此链接并与某人共享时。在这种情况下,需要知道 friend 智能手机的区域设置才能生成正确的链接。

例如,以下链接仅适用于具有英语或英国语言环境的设备: http://maps.google.com/maps?saddr=Current%20Location&daddr=32.026685,34.742092

是否有任何通用的方法来创建这样的链接,以便它可以在所有设备上工作,而不管它们的区域设置。

最佳答案

问题出在 Google map 启动链接中的 saddr 参数。它必须是三个选项之一:

  1. 源地址
  2. 源位置(纬度、经度)
  3. “当前地址”- 告诉 Google map 应用从当前位置开始的字符串。

前两个没问题,但大多数情况下第三个被视为地址字符串而不是获取当前位置的命令。如果它与启动链接的手机处于同一区域,则它可以正常工作。例如,“Lieu actuel”在法语中是“当前位置”,并且可以在语言环境为法语的设备上工作,但不能在具有任何其他语言环境(例如英语)的设备上工作如果您知道收件人的本地地址,这个事实可能不是问题,但在大多数情况下您不是。

我的解决方案是使用帮助 HTML 页面接收目标地址/点作为 GET 参数并生成 Google 启动链接,其中用户位置品脱或适当语言环境中的“当前位置”字符串作为源地址/点

我正在使用浏览器的地理定位 api 来检索“当前位置”字符串的位置和静态翻译数组。

这是 HTML 帮助页面的简单视觉结构:

enter image description here

这是完整的 HTML 页面代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html>
<head>
</style>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-8-i">
<title>My Title!</title>
<script type="text/javascript">

function getQueryVariable(variable) {
variable = variable.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + variable + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(document.URL);
if (results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}



var langArr = new Array();
langArr["nl"] = "Huidige locatie";
langArr["en"] = "Current Location";
langArr["fr"] = "Lieu actuel";
langArr["de"] = "Aktueller Ort";
langArr["it"] = "Posizione attuale";
langArr["ja"] = "???";
langArr["es"] = "Ubicacion actual";
langArr["ar"] = "?????? ??????";
langArr["ca"] = "Ubicacio actual";
langArr["cs"] = "Soucasna poloha";
langArr["da"] = "Aktuel lokalitet";
langArr["el"] = "???????? ?????????";
langArr["en-gb"] = "Current Location";
langArr["en-us"] = "Current Location";
langArr["fi"] = "Nykyinen sijainti";
langArr["he"] = "????? ?????";
langArr["he-il"] = "????? ?????";
langArr["hr"] = "Trenutna lokacija";
langArr["hu"] = "Jelenlegi helyszin"
langArr["id"] = "Lokasi Sekarang";
langArr["ko"] = "?? ??";
langArr["ms"] = "Lokasi Semasa";
langArr["no"] = "Nav?rende plassering";
langArr["pl"] = "Biezace polozenie";
langArr["pt"] = "Localizacao Atual";
langArr["pt-pt"] = "Localizacao actual";
langArr["ro"] = "Loc actual";
langArr["ru"] = "Òåêóùåå ðàçìåùåíèå";
langArr["ru-ru"] = "Òåêóùåå ðàçìåùåíèå";
langArr["sk"] = "Aktualna poloha";
langArr["sv"] = "Nuvarande plats";
langArr["th"] = "???????????????";
langArr["tr"] = "Su Anki Yer";
langArr["uk"] = "Ïîòî÷íå ì³ñöå";
langArr["vi"] = "V? tri Hi?n t?i";
langArr["zh-cn"] = "????";
langArr["zh-tw"] = "????";


var coordinate = getQueryVariable("ll");
var language = window.navigator.userLanguage || window.navigator.language;
language = language.toLowerCase();
if (navigator.geolocation != undefined)
{
if (coordinate != "")

navigator.geolocation.getCurrentPosition(successCallback,
errorCallback,
{maximumAge:000000});
}

else
{
errorCallback("");
}


function successCallback(position) {
if ( (navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPad') != -1))
window.location = "comgooglemaps://?saddr=" + position.coords.latitude + "," + position.coords.longitude + "&daddr=" + coordinate;
else
window.location = "http://maps.google.com/maps?saddr=" + position.coords.latitude + "," + position.coords.longitude + "&daddr=" + coordinate;

}



function errorCallback(error) {
alert("Sorry cannot determine your current location. Please select \"Current Location\" as point A in google maps");
window.location = "http://maps.google.com/maps?saddr=" + langArr[language].replace(" ","+") + "&daddr=" + coordinate;
}


</script>
</head>
<body>
<div STYLE="position:absolute; TOP:460px; LEFT:80px; WIDTH:370px; HEIGHT:50px" >
Please wait.<br/>Detecting your location...<br/>If nothing happens for long time please use the following link:
<h3><a href="javascript:errorCallback('');">Manually launch Google Maps</a></h3>
</div>
</body>
</html>
  • 一些字符串无法正确传递并显示为问题。使用谷歌翻译来翻译这些。

关于android - 谷歌地图启动链接,源地址为 "Current Location",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com