当使用安卓谷歌地图应用程序的共享按钮分享位置时,它只会将一个URL作为意图返回到其他应用程序中,例如:
https://goo.gl/maps/tkNXzF2krmR2
这是一个谷歌短链接,可通过谷歌短链接API将其转换为长链接,如下所示:
http://maps.google.com/?q=Tehran+Province,+Tehran,+Banafsheh+3&ftid=0x3f8dfd04d309f925:0x2867166b05b0bfe6&hl=en≷=us&shorturl=1
显然,此URL没有纯纬度和经度值。但似乎在ftid参数后面有值,该值与“:”字符分隔。
请帮助我从这种十六进制格式中提取纬度和经度值。
我正在使用PHP语言,但其他语言也可以帮助。
我需要像这样的函数(这不起作用):
function hextolatlon($hex){ // 假设hex是一个值,例如0x1446041F或0x447D1100 // 转换为有符号整数 $h=$hex&0xFF; $h=($h>>8)&0xFF; $h=($h>>16)&0xFF; $h=($h>>24)&0xFF; $negative=($h>>31)!=0; // 获取符号 if($negative){ $h=~$h; $h=$h&0x7FFFFFFF; $h++; } // 转换为度和分 $degrees=floor($h/10000000); $minutes=$h%10000000; // 转换为完整度数 $degrees+=($minutes/100000.0) / 60.0; if($negative)$degrees=-$degrees; return $degrees; }
将0x3f8dfd04d309f925转换为类似35.74388的内容。非常感谢。