最近要搞一个活动,关于门店定位的:
将csv文件中的中文地址转换成百度地图经纬坐标:
$oneline对应csv文件中的地行地址
public function baiduMap(){
set_time_limit(0);
$file=APP_PATH.'ctrl/love.csv';
$handle=fopen($file,'r');
if($handle){
$i=0;
while(!feof($handle)){
$oneline=fgetss($handle);
if($oneline){
//var_dump($oneline);
//$oneline=str_replace('\r\n','',$oneline);
if(strlen($oneline)>2){
if($i<400){
$url='http://api.map.baidu.com/geocoder/v2/?output=json&ak=换成你自己的key &address='.$oneline;
$str=file_get_contents($url);
sleep(1);//休息一下,防止服务器挂掉
if($str){
$arr=json_decode($str,true);
//self::p($arr);
$x=$arr['result']['location']['lng'];
$y=$arr['result']['location']['lat'];
$sql="insert into `table` values(null,$oneline,$x,$y)<br/>";
echo $sql;
}else{
echo $i.$oneline.'<br/>';
}
}
$i++;
}
}
}
}
}
百度地图定位的一些接口:
中文地址转经纬度坐标:
http://api.map.baidu.com/geocoder/v2/?output=json&ak=你自己的key&address=中文地址
根据经纬度定位地址:
http://lbsyun.baidu.com/jsdemo.htm#i8_4
点击地图获取坐标:
http://lbsyun.baidu.com/jsdemo.htm#f0_3
绘制点线面:
http://lbsyun.baidu.com/jsdemo.htm#f0_7
百度地图地点标注及纠错:
http://i.map.baidu.com/api/page/poicorrect/addpoipc?business_trigger=8&city_id=301&poi_name=%E4%B8%AD%E5%B1%B1%E4%B8%AD%E5%AD%A6-%E5%85%AC%E4%BA%A4%E8%BD%A6%E7%AB%99
一个比较完整的经常用到的百度地图示例:
<!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=你自己的key"></script>
<!--测距离用-->
<script type="text/javascript" src="http://api.map.baidu.com/library/DistanceTool/1.2/src/DistanceTool_min.js"></script>
<title>地图展示</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap"); // 创建Map实例
var point = new BMap.Point(114.13429547417234, 22.574919563811855);//标注点
map.centerAndZoom(point, 16); // 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
map.setCurrentCity("深圳市水贝万山珠宝园"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
map.addControl(new BMap.NavigationControl());//左上控件
//标注
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
//marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
//监听标注事件
marker.addEventListener("click", function(e){
alert("当前位置:" + e.point.lng + ", " + e.point.lat);
});
//托拽的标注
marker.enableDragging();
marker.addEventListener("dragend", function(e){
alert("当前位置:" + e.point.lng + ", " + e.point.lat);
})
//地图上加信息窗口
var opts = {
width : 250, // 信息窗口宽度
height: 100, // 信息窗口高度
title : "闪盟珠宝" // 信息窗口标题
}
var infoWindow = new BMap.InfoWindow("这里是内容区", opts); // 创建信息窗口对象
map.openInfoWindow(infoWindow, map.getCenter()); // 打开信息窗口
//左上角加比例尺
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
map.addControl(top_left_control);
// 添加带有定位的导航控件(地图上的点击获取当前位置)
var navigationControl = new BMap.NavigationControl({
// 靠左上角位置
anchor: BMAP_ANCHOR_TOP_LEFT,
// LARGE类型
type: BMAP_NAVIGATION_CONTROL_LARGE,
// 启用显示定位
enableGeolocation: true
});
map.addControl(navigationControl);
// 添加定位控件
var geolocationControl = new BMap.GeolocationControl();
geolocationControl.addEventListener("locationSuccess", function(e){
// 定位成功事件
var address = '';
address += e.addressComponent.province;
address += e.addressComponent.city;
address += e.addressComponent.district;
address += e.addressComponent.street;
address += e.addressComponent.streetNumber;
alert("当前定位地址为:" + address);
});
geolocationControl.addEventListener("locationError",function(e){
// 定位失败事件
alert(e.message);
});
map.addControl(geolocationControl);
///////////////////添加城市列表///////////////////////
/*var mp = new BMap.Map("allmap");
var point = new BMap.Point(116.404, 39.915);
mp.centerAndZoom(point, 14);
mp.enableScrollWheelZoom();
mp.enableInertialDragging();
mp.enableContinuousZoom();
var size = new BMap.Size(10, 20);
mp.addControl(new BMap.CityListControl({
anchor: BMAP_ANCHOR_TOP_LEFT,
offset: size,
// 切换城市之间事件
// onChangeBefore: function(){
// alert('before');
// },
// 切换城市之后事件
// onChangeAfter:function(){
// alert('after');
// }
}));
*/
/****************测距离***************/
// 百度地图API功能
/*var map = new BMap.Map("allmap");
map.centerAndZoom("万山珠宝园",16);
var myDis = new BMapLib.DistanceTool(map);
map.addEventListener("load",function(){
myDis.open(); //开启鼠标测距
//myDis.close(); //关闭鼠标测距大
});
*/
</script>
- 相关文章
- phpexcel设置行高及列宽,背景颜色,
- 单点登录sso原理及php实现方式及de
- 在php中用curl请求java接口无法获
- 免费ip地址查询接口
- php,java,android, aes加解密-加密
- 地图上计算两点间的距离
- 关于百度地图的一些技巧
- php中empty,is_null,isset的区别
- windows及linux下composer安装教程
- 一种精妙的数据查询与存储方式
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1306209