百度地图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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
php绘制圆形的方法
Jan 24 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
laravel实现前后台路由分离的方法
Oct 13 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
cmd下运行php脚本
2008/11/25 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php实现的通用图片处理类
2015/03/24 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
浅析return false的正确使用
2013/11/04 Javascript
js opener的使用详解
2014/01/11 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
js模糊查询实例分享
2016/12/26 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
简历中个人求职的自我评价模板
2013/11/29 职场文书
活动总结怎么写
2014/04/28 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js