百度地图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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
逆序二维数组插入一元素的php代码
Jun 08 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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值的代码(推荐)
2011/01/01 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
让焦点自动跳转
2006/07/01 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
python实现公司年会抽奖程序
2019/01/22 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
django框架创建应用操作示例
2019/09/26 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
学校安全责任书
2014/04/14 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
政协常委会议主持词
2015/07/03 职场文书
禁毒主题班会教案
2015/08/14 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
感谢信
2019/04/11 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript