百度地图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 相关文章推荐
phpwind中的数据库操作类
Jan 02 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
phpStorm2020 注册码
Sep 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 简单数组排序实现代码
2009/08/05 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
js css样式操作代码(批量操作)
2009/10/09 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
python实现RSA加密(解密)算法
2016/02/17 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
Python使用Matlab命令过程解析
2020/06/04 Python
python实现画图工具
2020/08/27 Python
python 获取字典键值对的实现
2020/11/12 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
安全生产计划书
2014/05/04 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
党内外群众意见范文
2015/06/02 职场文书
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python
python pygame 开发五子棋双人对弈
2022/05/02 Python