百度地图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学习 函数 课件
Jun 15 PHP
解析php中获取系统信息的方法
Jun 25 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 PHP
详解PHP中curl_multi并发的实现
Jun 08 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
Window下PHP三种运行方式图文详解
2013/06/11 PHP
PHP curl使用实例
2015/07/02 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python中functools模块函数解析
2017/03/12 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python while循环使用else语句代码实例
2020/02/07 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
python制作微博图片爬取工具
2021/01/16 Python
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
航空大学应届生求职信
2013/11/10 职场文书
药品质量检测应届生求职信
2013/11/14 职场文书
高中军训感言1000字
2014/03/01 职场文书
安全教育实施方案
2014/03/02 职场文书
财务担保书范文
2014/04/02 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
中学教师教学工作总结
2015/08/13 职场文书
Python中for后接else的语法使用
2021/05/18 Python
Ruby处理CSV数据方法详解
2022/04/18 Ruby
Golang 实现WebSockets
2022/04/24 Golang