百度地图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 表单提交给自己
Jul 24 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
php中类和对象:静态属性、静态方法
Apr 09 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PDO::getAvailableDrivers讲解
Jan 28 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生成xml时添加CDATA标签的方法
2014/10/17 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
jquery常用操作小结
2014/07/21 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python识别验证码的实现示例
2020/09/30 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
《梅兰芳学艺》教学反思
2014/02/24 职场文书
黄金搭档广告词
2014/03/21 职场文书
党课培训主持词
2014/04/01 职场文书
让世界充满爱观后感
2015/06/10 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS