关于手机地图api【百度/高德/百度转高德】

来源:互联网 发布:sql 数据挖掘分析 编辑:程序博客网 时间:2024/04/30 02:23

一、百度地图api 【手机有时候会出现空白页面】

(1)百度坐标拾取器  地址:http://api.map.baidu.com/lbsapi/getpoint/index.html

(2)第一个纬度,第二个经度(纬度最大是90度,大于90度的一定是经度)

(3)api 的书写

<a href="http://api.map.baidu.com/marker?location=纬度,经度&output=html&src=we7&title=标题">地图</a>

二、高德地图api

(1)利用百度坐标拾取器的坐标转换成高德坐标

百度坐标系:bd-09:百度坐标系是在GCJ-02坐标系的基础上再次加密偏移后形成的坐标系,只适用于百度地图。(目前百度API提供了从其它坐标系转换为百度坐标系的API,但却没有从百度坐标系转为其他坐标系的API)。

GCJ-02坐标系,又名“火星坐标系”:高德和Google在国内都是使用GCJ-02坐标系,可以说,GCJ-02是国内最广泛使用的坐标系。

<?php    //GCJ-02(火星,高德) 坐标转换成 BD-09(百度) 坐标      //@param bd_lon 百度经度    //@param bd_lat 百度纬度    function bd_encrypt($gg_lon,$gg_lat)    {        $x_pi = 3.14159265358979324 * 3000.0 / 180.0;        $x = $gg_lon;        $y = $gg_lat;        $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);        $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);        $data['bd_lon'] = $z * cos($theta) + 0.0065;        $data['bd_lat'] = $z * sin($theta) + 0.006;        return $data;    }    //BD-09(百度) 坐标转换成  GCJ-02(火星,高德) 坐标      //@param bd_lon 百度经度    //@param bd_lat 百度纬度    function bd_decrypt($bd_lon,$bd_lat)    {        $x_pi = 3.14159265358979324 * 3000.0 / 180.0;        $x = $bd_lon - 0.0065;        $y = $bd_lat - 0.006;        $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);        $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);        $data['gg_lon'] = $z * cos($theta);        $data['gg_lat'] = $z * sin($theta);        return $data;    }    //测试    $bd = bd_encrypt(108.947903,34.231966);    //输出:array(2) { ["bd_lon"]=> float(108.954466795) ["bd_lat"]=> float(34.2376965936) }    $gg = bd_decrypt(108.95434,34.238235);    //输出:array(2) { ["gg_lon"]=> float(108.947903625) ["gg_lat"]=> float(34.2319662425) }?> 

(2)api 的书写

<?php $x_pi = 3.14159265358979324 * 3000.0 / 180.0;$x = $r['k2'];$y = $r['k1'];$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);$data['bd_lon'] = $z * cos($theta) + 0.0065;$data['bd_lat'] = $z * sin($theta) + 0.006;//$aaa=$this->bd_decrypt('126.593613','45.706279');?><a href="http://mo.amap.com/?q={$data['bd_lon']},{$data['bd_lat']}&name={$r['title']}&dev=0">地图</a>




原创粉丝点击