php - 从谷歌地图 url ftid(十六进制)获取纬度/经度

标签 php android google-maps location hex

当使用 android google maps app share button 获取位置时,它只是返回一个 url 作为 intent 给其他应用程序,比如这个:

https: // goo. gl / maps/tkNXzF2krmR2

这是一个谷歌短网址,可翻译成长网址(使用 goole 短网址 api),如下所示:

http://maps.google.com/?q=Tehran+Province,+Tehran,+Banafsheh+3&ftid=0x3f8dfd04d309f925:0x2867166b05b0bfe6&hl=en&gl=us&shorturl=1

很明显,此 url 没有纯纬度和经度值。但似乎值落后于 url 中的 ftid 参数。用“:”字符分隔。

请帮我从这个十六进制格式中提取纬度和经度值

我正在使用 PHP 语言,但其他人也可以提供帮助。 我需要这样的功能:(这是行不通的):


    function hextolatlon($hex){
            // Assume hex is a value like 0x1446041F or 0x447D1100
            // Convert to a signed integer
            $h=$hex&0xFF;
            $h=($h>8)&0xFF);
            $h=($h>16)&0xFF);
            $h=($h>24)&0xFF);
            $negative=($h>>31)!=0; // Get the sign
            if($negative){
                $h=~$h;
                $h=$h&0x7FFFFFFF;
                $h++;
            }
            // Convert to degrees and minutes
            $degrees=floor($h/10000000);
            $minutes=$h%10000000;
            // Convert to full degrees
            $degrees+=($minutes/100000.0) / 60.0;
            if($negative)$degrees=-$degrees;
            return $degrees;
        }

将 0x3f8dfd04d309f925 转换为 35.74388 之类的东西。 非常感谢

最佳答案

我认为迟到总比没有好。

您尝试解密的 FTID 参数未(必然)存储纬度和经度。如果它指的是 map 地点(例如咖啡馆、时装店),则冒号后参数的第二部分指的是客户 ID。

举一个真实世界的例子,参数:

!1s0x6ad63fbf56e24c27:0xe665b3308d32f379

可以这样理解

0xe665b3308d32f379  ---hex-to-dec--->  16601872622479930233

https://google.com/maps?cid=16601872622479930233将通向标记的地方。

如何从中提取坐标?如果你只有几个 sample ,你可以手工完成。点击上面的链接,1-2 秒后,谷歌地图将在浏览器中刷新 URL。它现在在 !3d!4d 参数中包含位置的精确坐标。

如果您有很多示例和/或想要自动化该过程,则必须使用 Google Maps API(例如检查此 link)。

我还没有弄明白的是 1)第一个参数包含什么信息和 2) 如果 FTID 参数导致地址或地理位置,如何理解它。

同时检查我发布的问题 here了解更多详情。

关于php - 从谷歌地图 url ftid(十六进制)获取纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843934/

相关文章:

google-maps - 谷歌静态 map 不显示

php - 提交表单 PHP 修改为 JQuery AJAX

php - ajax 调用未定义

javascript - 如何使用 react-google-maps 通过点击在 map 上添加标记?

java - Android 测试运行失败 : No Test results

android - Flex Air 安卓 : Disable back button

javascript - Google map V3 - 删除所有标记

php - 查找元素在简单数组中的位置

Javascript 以 pretty-print 方式格式化 var_dump 以提高可读性

android:每次单击选项卡时内存使用量都在增加(使用 Activity 组时)