php利用百度地图定位案例,使用百度地图API获取手动定位位置信息实例讲解

需求

后台新增/编辑活动项目时,用户可以自己通过地图插件选择位置(手动定位),选择后,系统能够获得当前位置的地址信息以及坐标信息,以方便后续程序的处理。

代码

不啰嗦,直接看代码:

表单页面(截选):

地址

经纬度

$(function(){

// 拾取坐标

$('#getgps').on('click',function(){

//iframe层

layer.open({

index:'oif',

type: 2,

title: '拾取坐标',

shadeClose: true,

shade: 0.8,

area: ['60%', '70%'],

content: "{:url('admin/baidumap/getgps')}" //iframe的url

});

});

});

function close_f() {

layer.closeAll();

}

地图弹出层页面:

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}

单击获取点击的经纬度

// 百度地图API功能

var map = new BMap.Map("allmap"); // 创建对象

map.centerAndZoom("合肥",12); // 初始文职

map.enableScrollWheelZoom(true); // 允许鼠标滚轮放大缩小

//单击获取点击的经纬度

map.addEventListener("click",function(e){

window.parent.$('#longitude').val(e.point.lng);

window.parent.$('#latitude').val(e.point.lat);

var get_address_url = " http://api.map.baidu.com/geocoder/v2/?output=json&ak=D609d0ffb67e0b155cdb15681cdc85ab&location="+e.point.lat+","+e.point.lng+"";

$.get("{:url('admin/baidumap/getpagecontent')}",{link:get_address_url},function(data){

data = JSON.parse(data);

var location_url = data.result.formatted_address;

var isw = window.parent.$('#address').val(location_url);

if(isw){

window.parent.close_f();

}

});

});

PHP获取页面结果方法:

/**

* 根据网址获取页面内容

*

* @param $link

*

* @return string

*/

public function getPageContent($link)

{

$link = trim($link);

$content = file_get_contents($link);

return $content;

}

总结

流程上可以分为:点击按钮弹出子窗口页面 -> 手动鼠标选择页面位置 -> 父页面地址和坐标分别获取到值 -> 子页面关闭。

技术上主要以百度地图API为核心,layer弹出层和PHP百度api中结果配合,js父子页面传值引导达成目标。

因为很简单,其他的也不多说了,有兴趣的可以申请个ak码试试,百度官方也有很多示例。

地址

JavaScript API 类参考:[http://developer.baidu.com/map/reference/index.php][1]

JavaScript API demo演示:[http://developer.baidu.com/map/jsdemo.htm#a1_2][2]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值