百度地图为我提供了一种解决方案(当然还有其他的解决方案)。
先总的来说一下,想使用百度地图的接口,除了你要写一些php(其他代码当然也能实现,本文写的是php实现)代码之外,唯一需要的就是申请一个百度地图的 密钥(免费申请,过程简单)。有了这个密钥,就相当于百度给你了一个访问百度地图api的通行证了。
百度地图的接口也分很多种,我的需求是:打开一个php页面就获取IP以及经纬度。
二、具体过程:
我会从头到尾,一步一步写出开发的过程,好了撸开袖子开干吧:
1.申请密钥(密钥和语言无关):
先访问接口文档 高精度IP定位API·Web服务API ,这个页面有个“产品介绍”小节,里面有个“申请密钥”的超链接:
单击它,跳转到申请蜜钥的页面:
然后单击“创建应用”,到创建页面:
然后填写一个自定义的名称、写一个IP白名单(根据自己需求,可选),然后提交。
TIP:如果是第一次申请的话,百度会发手机验证码进行验证.
2.撸代码
有了密钥,看看接口文档,就开始撸代码吧。
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
header(
"Content-type: text/html; charset=utf-8"
);
?>
<?php
$user_ip
=
$_SERVER
[
"REMOTE_ADDR"
];
//获取客户端IP
get_lat_and_lng_ByIP(
$user_ip
);
//根据IP获取经纬度
function
get_lat_and_lng_ByIP(
$ip
)
{
if
(
empty
(
$ip
))
{
return
'IP不能为空'
;
}
$content
=
file_get_contents
(
"http://api.map.baidu.com/highacciploc/v1?qcip=$ip&qterm=pc&ak=请输入您的AK&coord=bd09ll"
);
$json
= json_decode(
$content
);
$lng
=
$json
->{
'content'
}->{
'location'
}->{
'lng'
};
//提取经度数据
$lat
=
$json
->{
'content'
}->{
'location'
}->{
'lat'
};
//提取纬度数据
echo
"当前经度:"
.
$lng
;
echo
"<br/>"
;
echo
"当前纬度:"
.
$lat
;
}
|