经纬度定位 - php 经纬度坐标转化

查看:886
本文介绍了经纬度定位 - php 经纬度坐标转化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.如何实现以下数据,把坐标显示在百度地图上

经度            纬度        
112˚49.0382´    23˚59.3728´    
112˚49.0248´    23˚59.1681´
112˚49.1274´    23˚59.034´
112˚49.1986´    23˚58.9272´
112˚49.394´     23˚58.6538´
112˚49.3983´    23˚58.654´
112˚49.4483´    23˚58.5872´
112˚49.509´     23˚58.5099´
112˚50.1618´    23˚58.2176´

解决方案

话说题主这个数据居然是使用带分的度数来表示。囧。而百度API一般都是只要浮点型的度数。这之间需要做一个解析转换。

而PHP中对度数的˚符号的处理好尴尬:

我建议把˚先处理下,然后再解析转换,如:

function parseDegree($s) {
    $s = str_replace(['˚', '´'], ['D', ''], $s);
    if (preg_match('/^(\d+)D(\d+(?:\.\d+))$/', $s, $m)){
        return $m[1] + $m[2] / 60.0;
    }
    
    return false;
}

使用这个函数就可以将题主的数据转换成百度地图API所需要的格式了,如:

>>> parseDegree('112˚49.0382´')
=> 112.81730333333
>>> parseDegree('23˚59.3728´')
=> 23.989546666667

各种地图API的链接楼上都已经贴了,我就不罗嗦了

这篇关于经纬度定位 - php 经纬度坐标转化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆