百度地图API使用方法详解


Posted in PHP onAugust 25, 2015

最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子。

示例一:

API地址:http://developer.baidu.com/map/jsdemo.htm#a1_2

<!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>
 <!--调用百度api -->
 <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"); // 创建Map实例
 map.centerAndZoom("西安", 5);  // 初始化地图,用城市名设置地图中心点
 map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
 map.setCurrentCity("深圳");   // 设置地图显示的城市 此项是必须设置的
 map.enableScrollWheelZoom(true);  //开启鼠标滚轮缩放
 var point = new BMap.Point(116.404, 39.915);
 var marker = new BMap.Marker(point); // 创建点
 map.addOverlay(marker); //添加点
 map.removeOverlay(marker); //删除点
 // 创建地址解析器实例
 var myGeo = new BMap.Geocoder();
 //批量解析
 var adds = ["长沙", "深圳", "香港", "郑州 ", "惠州", "南昌", "赣州", "中山", "阳江", "上海", "无锡", "南京"];
 for (var i = 0; i < adds.length; i++) {
  myGeo.getPoint(adds[i], function (point) {
   if (point) {
    var address = new BMap.Point(point.lng, point.lat);
    var marker = new BMap.Marker(address);
    map.addOverlay(marker);
    var opts = {
     width: 120,  // 信息窗口宽度
     height: 70,  // 信息窗口高度
     title: "项目信息" // 信息窗口标题
    }
    var infoWindow = new BMap.InfoWindow("<a href='#' target='blank'>查看详情</a>", opts); // 创建信息窗口对象
    marker.addEventListener("click", function () {
     map.openInfoWindow(infoWindow,address); //开启信息窗口
    });
   }
  }, "深圳市");
 }
 getBoundary("中国");
 function getBoundary(sRegion) {
  var bdary = new BMap.Boundary();
  bdary.get(sRegion, function (rs) { //获取行政区域
   var count = rs.boundaries.length; //行政区域的点有多少个
   for (var i = 0; i < count; i++) {
    var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#4A7300", fillColor: "#FFF8DC" }); //建立多边形覆盖物
    map.addOverlay(ply); //添加覆盖物
   }
  });
 }
</script>

 效果如下:

百度地图API使用方法详解

示例二:

百度地图API是由JavaScript语言编写的,在使用之前需要将API引用到页面中:  现在新版本的需要密钥,下面用的是旧版的

<script src="http://api.map.baidu.com/api?v=版本&services=true或者false" type="text/javascript"></script>

显示广州火车站简单实例:

百度地图API使用方法详解

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="utf-8"/> 
 <title>百度地图API的使用</title> 
 <!-- 百度地图API-->
 <script src="http://api.map.baidu.com/api?v=1.2" type="text/javascript"></script> 
 <script type="text/javascript"> 
 function initialize() { 
  //创建地图实例 
  var map = new BMap.Map('map'); 
  //创建一个坐标
  var point =new BMap.Point(113.264641,23.154905);
  //地图初始化,设置中心点坐标和地图级别 
  map.centerAndZoom(point,15); 
 } 
 window.onload = initialize; 
 </script> 
</head> 
<body> 
<!-- 百度地图地图容器-->
 <div id="map" style="width:500px;height:320px"></div> 
</body> 
</html>

地图上添加控件:

百度地图API使用方法详解

//添加控件

map.addControl(new BMap.MapTypeControl());

MapTypeControl ---------地图类型控件

CopyrightControl --------版权控件

ScaleControl       --------比例尺控件

NavigationControl  ------缩放控件

OverviewMapControl  ----缩略图控件

创建标注:

百度地图API使用方法详解

var marker = new BMap.Marker(point);   // 创建标注
map.addOverlay(marker);      // 将标注添加到地图中

创建信息窗口:

百度地图API使用方法详解

var infoWindow = new BMap.InfoWindow("I am here"); // 创建信息窗口对象
map.openInfoWindow(infoWindow,point);     //开启信息窗口

百度地图偏移量:

经度校正值: 0.008774687519;

纬度校正值: 0.00374531687912;

PHP 相关文章推荐
php SQL之where语句生成器
Mar 24 PHP
php学习之变量的使用
May 29 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
destoon之一键登录设置
Jun 21 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
php 把数字转换成汉字的代码
Jul 21 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
PHP实现生成唯一会员卡号
Aug 24 #PHP
PHP实现微信发红包程序
Aug 24 #PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 #PHP
php实现递归的三种基本方式
Jul 04 #PHP
php析构函数的简单使用说明
Aug 24 #PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 #PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 #PHP
You might like
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
使用php+xslt在windows平台上
2006/10/09 PHP
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Python调用C语言开发的共享库方法实例
2015/03/18 Python
Python base64编码解码实例
2015/06/21 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
python实现画圆功能
2018/01/25 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
Java基础类库面试题
2013/09/04 面试题
公务员转正鉴定材料
2014/02/11 职场文书
初一新生军训方案
2014/05/22 职场文书
本科生求职信
2014/06/17 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python