php 经纬度坐标转化

发布于 2022-09-05 04:21:35 字数 336 浏览 20 评论 0

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´

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南…巷孤猫 2022-09-12 04:21:35

话说题主这个数据居然是使用带分的度数来表示。囧。而百度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的链接楼上都已经贴了,我就不罗嗦了

半步萧音过轻尘 2022-09-12 04:21:35
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
    body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <title>添加动画标注点</title>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(point, 15);
    var marker = new BMap.Marker(point);  // 创建标注
    map.addOverlay(marker);               // 将标注添加到地图中
    marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
</script>

参考这个demo。http://lbsyun.baidu.com/jsdem...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文