百度地图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详细彻底学习Smarty
Mar 27 PHP
PHP 远程关机实现代码
Nov 10 PHP
php将数据库导出成excel的方法
May 07 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php动态绑定变量的用法
Jun 16 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
php实现学生管理系统
Mar 21 PHP
PHP类型约束用法示例
Sep 28 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php实现分页显示
2015/11/03 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
javascript时间函数大全
2014/06/30 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
测试工程师岗位职责
2013/11/28 职场文书
社区学习十八大感想
2014/01/22 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
史上最牛的辞职信
2015/02/28 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Python实现排序方法常见的四种
2021/07/15 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
2022微信温控新功能上线
2022/05/09 数码科技
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang