百度api使用心得体会
最近项目中在使用百度地图api,对于其中的一些有用的点做一些归纳整理,如有不对的地方,欢迎各位大神纠正指出。
一定要学会查找百度地图api提供的类参考网站:http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html,这个能加快对于地图的属性,方法等的应用。
一、创建地图
插入一个div用作地图的容器,地图的大小样式可根据项目需求对样式大小进行修改。
<style type="text/css">
body, html, #map {
width: 100%;
height: 100%;
overflow: hidden;
margin:;
font-family: "微软雅黑";
}
</style>
<div id="map"></div>
在html页中引入api所需要的js库 如下:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>
<script type="text/javascript">
var map = new BMap.Map("map"); // 创建Map实例
var lng=113.672743;//经度
var lat=34.766299;//纬度
var point = new BMap.Point(lng, lat);
map.centerAndZoom(point, 14);
</script>
如果没有密钥可以去百度地图api官网注册一个密钥。
这样我们就实现好了一个以郑州为中心点(根据经纬度坐标),地图缩放比例是14的地图。
经纬度的获取可以通过下面百度提供的网站进行抓取:http://api.map.baidu.com/lbsapi/getpoint/index.html。
二、地图标志
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT});// 定义 左上角,添加比例尺
var top_left_navigation = new BMap.NavigationControl(); // 定义 左上角,添加默认缩放平移控件
map.addControl(top_left_control);//添加
map.addControl(top_left_navigation);//添加
addControl的方法是添加图控件,例如:比例尺,缩放的滚轴等。关于地图上的控件可以查看百度api的示例,根据自己的需要进行添加,地址如下:http://lbsyun.baidu.com/jsdemo.htm#a1_2。
另外在项目中需要去掉百度左下角的logo及下面附属的文字,可对左下角样式进行定义去除:
.anchorBL {
display: none;
}
三、查找
查找的示例:
var local = new BMap.LocalSearch(map, {
renderOptions: { map: map }
});
local.search("景点");
关于查找我们可以详细看下LocalSearch这个类,其中查找的方法有search,searchInBounds,searchNearby这三个。
search(keyword: String | Array<String>, option: Object):根据检索词发起检索,当keyword为数组时将同时执行多关键字的查询,最多支持10个关键字。
searchInBounds(keyword: String | Array<String>, bounds: Bounds, option: Object):根据范围和检索词发起范围检索,当keyword为数组时将同时执行多关键字检索,最多支持10个关键字。(这个方法我用到的少,主要是因为bounds没时间研究)
searchNearby(keyword: String | Array<String>, center:LocalResultPoi| String | Point, radius: Number, option: Object):根据中心点、半径与检索词发起周边检索。当keyword为数组时将同时执行多关键字的检索,最多支持10个关键字。(这个方法再项目中用到的比较多,项目功能是实现楼盘周边配套施设的)。
对于LocalSearch中的renderOptions中还包含了一个回调函数onSearchComplete,在项目中的应用比较广泛:
可以这样定义:
onSearchComplete: function(results){
// 判断状态是否正确
if (local.getStatus() == BMAP_STATUS_SUCCESS) {
//执行操作
}
}
其中results表示的搜索到的结果集,像例子中就表示是郑州周边的景点的结果集。
results中常用到的属性和方法有:
results.getCurrentNumPois():表示获取当前页结果集所有的点。当页显示多少可以再renderOptions中定义,比如:pageCapacity: 20,表示显示20个。
results.getPoi(1).point.lng:获取结果集第一个点的经度。
results.getPoi(1).point.lat:获取结果集第一个点的纬度。
results.getPoi(1).point.title:获取结果集第一个点的名称。
results.getPoi(1).point.address:获取结果集第一个点的地址。
results.getPoi(1).point.phoneNumber:获取结果集第一个点的电话。
map.getDistance:可以根据经纬度计算两点间的距离,如果用的到可以拓展路线,打车等服务(详情参考:TaxiFare类)。
四、遮盖物
有的时候我们需要对地图上点进行标记等操作,这时候我们就需要对其添加遮盖物,比较常见的有圆形,矩形,三角形等不规则的简单遮盖层,这些百度地图给的例子中有详细介绍以及demo。这里我就说一说项目中用到的复杂自定义遮盖物。
实现思路是通过画图的方式,根据点的坐标,通过var pixel = map.pointToOverlayPixel(this._point);这句代码把坐标跟屏幕的像素进行转换,以得到遮盖物在屏幕上显示的横纵坐标,并赋值给left和top属性。
最后通过map.addOverlay(遮盖物对象)方法,添加遮盖物。清楚遮盖无是 map.clearOverlays()。
详情可以参考:http://lbsyun.baidu.com/jsdemo.htm#c1_11中的覆盖物示例中的添加自定义覆盖物,我是根据这个方法进行修改,实现了地图找房,楼盘周边交通示例等功能。
以上是我最近使用百度地图api的一些心得体会,第一次写博客,有什么不到位的,还请大牛们包含,欢迎指错。
百度api使用心得体会的更多相关文章
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...
- 十天来学习java的心得体会
有关学习java是几天来的心得体会: 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄.同学).在其中 ...
- Git的基本使用方法和安装&心得体会
1. git的安装和github的注册.代码托管.创建organization.邀请member. (1)git的安装 因为我电脑是windows系统,所以下载的是git for windows.在官 ...
- 做小Leader的心得体会
只是自己的工作心得体会,代码属于也不够专业,大家不喜勿喷. 8月份来到这家新公司,没过一个月给派了个活:带着两个小弟给某银行开发一个小工具.功能很简单,就是用Java做一个windows上的C端工具, ...
- 百度API ; 很多有用的接口及公用 数据
百度API : http://apistore.baidu.com/ . 比如手机号码:
- 关于Solr的使用总结的心得体会
摘要:在项目中使用Solr作为搜索引擎对大数据量创建索引,提供服务,本文是作者对Solr的使用总结的一点心得体会, 具体包括使用DataImportHandler从数据库中近实时同步数据.测试Solr ...
- 去百度API的百度地图准确叠加和坐标转换的解决方案研究
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 目前项目上如果要使用百度地图,得加载百度的开发包,然后通过百 ...
- 利用百度API Store接口进行火车票查询
火车票查询 项目源码下载链接: Github:https://github.com/VincentWYJ/TrainTicketQuery 博客文件:http://files.cnblogs.com/ ...
- 百度api短信开发
公司原来有一个短信发送的功能,是调用第三方的,但是很不稳定,时不时就收不到短信,但是钱已经扣了.对于这样的事,谁都忍受不了的.于是想找一个稳定短信发送平台,第一想到的是阿里云,百度.在这两个平台上公司 ...
随机推荐
- PHP 文件上传全攻略
PHP文件上传功能一般都是大家使用事先封装好的函数,要用的时候直接使用已封装的函数就完了,但有时候不能使用封装函数,还真不大能记住PHP的上传相关的东西,在此做个总结,以备后用. 1.表单部分 允 ...
- 二维动态规划——Interleaving String
97. Interleaving String Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2 ...
- ABP入门系列(8)——Json格式化
ABP入门系列目录--学习Abp框架之实操演练 讲完了分页功能,这一节我们先不急着实现新的功能.来简要介绍下Abp中Json的用法.为什么要在这一节讲呢?当然是做铺垫啊,后面的系列文章会经常和Json ...
- Python抓取百度百科数据
前言 本文整理自慕课网<Python开发简单爬虫>,将会记录爬取百度百科"python"词条相关页面的整个过程. 抓取策略 确定目标:确定抓取哪个网站的哪些页面的哪部分 ...
- TypeScript和JavaScript哪种语言更先进
TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...
- html5表单和伪类
type = "email"; 自带验证格式type = "url"; 网址 http//:type = "tel";移动端会变成数字键盘t ...
- 《Oracle 从头来过》--第一篇
ps:最近被领导找谈话,让在数据库方面要加强自身的学习(那叫一个尴尬(@﹏@)~(@﹏@)~),打算重新拾起... 下面相当于学习的一个记录吧,也为以后查找方便O(∩_∩)O 咱们从最基本的创建表开始 ...
- 【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换
最近因为项目需要在做两个项目间数据同步的需求,具体是项目1的数据通过消息队列同步到项目2中,因为这个更新操作还涉及到更新多个库的数据,所以就需要多数据源切换的操作.下面就讲讲在Spring中如何进行数 ...
- Redis 学习之事务处理
Redis事务机制 在MySQL等其他数据库中,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行. Redis目前对事物的支持相对简单.Redis只能保证一个client发起的事务中的命令可 ...
- ReactJS的开发日常
在用React框架开发的日子里,踩的坑真不少!今天就来说说这个关于组件的周期,说的可能不是很清楚,但是也给自己留下一个踩坑的纪念,如有不妥 还望大家指点一二 Warning: setState(... ...