百度地图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设计聊天室步步通
Oct 09 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
PHP文件上传原理简单分析
May 29 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
php禁止浏览器使用缓存页面的方法
Nov 07 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 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中PDO方式实现数据库的增删改查
2015/05/17 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue内置指令详解
2018/04/03 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
django主动抛出403异常的方法详解
2019/01/04 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
C#中的验证控件有几种
2014/03/08 面试题
设计师求职信模板
2014/05/06 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
支行行长岗位职责
2015/02/15 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书