百度地图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 相关文章推荐
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
PHP生成条形图的方法
Dec 10 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
Yii框架分页技术实例分析
Aug 30 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
深入解析php中的foreach问题
2013/06/30 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
python装饰器decorator介绍
2014/11/21 Python
基于python生成器封装的协程类
2019/03/20 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
迪奥官网:Dior.com
2018/12/04 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
上海中网科技笔试题
2012/02/19 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
经销商会议欢迎词
2014/01/11 职场文书
函授生自我鉴定
2014/03/25 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
详解Python类和对象内容
2021/06/22 Python