运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...
一、了解百度地图API
1、百度地图JavaScript API简介
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。该套API免费对外开放。自v1.5版本起,需先申请密钥(ak)才可使用,接口(除发送短信功能外)无使用次数限制。
在使用百度地图JavaScript API之前,请先阅读百度地图API使用条款。任何非营利性应用请直接使用,商业应用请参考使用须知。
JavaScript API首家支持Https,已全面开放,无需申请可直接使用。同时建议您认证企业信息,Web API类产品可获取更高配额。
注意:仅JavaScript API V2.0及以上版本支持https,其他JavaScript API版本均不支持。使用https服务,请先检查您的版本以及配置注意事项。
图1 JavaScript API 使用指南
2、获取密钥
登陆百度账号,按照获取密钥的指示获取您的AK,这就是将来在线开发过程中需要用到的AK信息。
图2 申请密钥
http://api.map.baidu.com/api?v=1.4 //参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。
http://api.map.baidu.com/api?v=2.0&ak=您的密钥 //使用JavaScript API v2.0请先申请密钥ak,按此方式引用。
3、开发指南
开发指南中介绍了构建地图基本功能的各种模块,包括控件、覆盖物、事件、地图图层、工具、服务、用户数据图层、全景图展现、定制个性地图。
4、类参考
类参考是在具体实现地图的各项功能时所用的类库。包括核心类、基础类、控件类、覆盖物类、右键菜单类、地图类型类、地图图层类、服务类、全景类。每个类都有介绍相应的属性、类型、描述。
5、示例Demo
Demo是在实现所需功能时可以直接用来参考和修改的代码,每个Demo实现一个基础的功能,在具体应用中往往需要参考多个Demo添加多项功能。
6、开源库和相关下载
百度地图JavaScript开源库是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库,帮助开发者快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、快速加载城市列表、拉框放大、拉框搜索、区域限制设置、几何运算、实时交通、检索与公交驾车查询、鼠标绘制工具等功能。百度地图JavaScript开源库秉着学习交流的态度,全部开源,可以参考开发文档,直接调用现有的开源库,也可以下载每个类的源文件,自行修改再使用。
开源库包括大数据可视化库、热力图、城市商圈及行政区域、绘制弧线类、鼠标绘制工具条库、检索信息窗口类、地图包裹类、事件包装类、自定义信息窗口、标注管理器、富标注、路书、测距工具、聚合marker、添加标注工具、自定义覆盖物、拉框放大工具、拉框搜索、区域限制、几何运算、交通流量、检索控件等。相关下载包括JavaScript API v2.0/v1.4 类参考文档和开发指南文档。
二、用百度地图API在线版实现相应功能
1、用本地编辑器Sublime Text 2,参考Demo编写网页。
2、<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>。是否需要添加自己的AK信息,这是v2.0和v.1.4的区别,也是在线版和离线版的区别。
3、<script type="text/javascript" src="data.js"></script>标注点的信息从.js文档中读取,也可通过其他途径如数据库和服务器中读取。
图3 从data.js中读取多个终端的信息并添加信息窗口(在线)
三、用百度地图API离线版实现相应功能
项目中要求web版百度地图要离线开发,此过程主要有三个技术点:如何获取离线API;如何获取离线瓦片图;如何在离线状态下将WGS坐标转换为百度地图坐标。这里请参考http://www.cnblogs.com/Joanna-Yan/p/5822231.html(最全面的百度地图JavaScript离线版开发)。
1、如何获取离线API
http://api.map.baidu.com/api?v=2.0&ak=“您的密钥”下载API主文件,修改API主文件:加载模块短路处理、加载瓦片改为离线瓦片、去掉AK验证、下载模块代码。API主文件代码修改步骤请参考于忠达《百度地图2.0离线版的制作》(https://my.oschina.net/smzd/blog/548538)。
注意:所有的离线文件要放在同一个文件夹下。
2、如何获取离线瓦片图
网上有各种地图下载器包括:太乐电子地图下载器、水经注电子地图下载器、全能电子地图下载器。可下载全国19级地图。
3、坐标转换
国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。坐标转换、批量坐标转换示例详见JavaScript API示例【地图示例_坐标换算】。
4、最终解决办法
按照上述步骤完成的百度地图API离线版有部分功能无法实现,模块添加需要通过修改加载模块的语句来完成,我难以找全全部的模块,导致有些遗留问题,博客作者本身也遇到过类似的问题,我按照他的方法仍无法解决。
在网上继续搜集信息,找到了一个完整的离线版开发包,请访问“小郭软件-原创与分享简单易用的绿色软件”(http://www.xiaoguo123.com/),作者把所有的模块下载在一个文件夹里,也仿照在线版Demo写了一个完整的Demo,基本无需更改即可使用。这个开发包里,获取离线API、离线瓦片、坐标转换等功能均已完成。全部19级瓦片的下载需要自己用下载器实现。
图4 从data.js中读取多个终端的信息并添加信息窗口(离线)
四、在线和离线的效果对比
明显地,在线版在外观界面上优于离线版,部分功能如中心城市设为“北京”,在离线版无法实现,初始显示只能以某个坐标为中心。尽管如此,离线版已经能满足项目的需求。各项功能只需在Demo的基础上逐步添加即可。
图5 在线版Demo
图6离线版Demo
转载于:https://my.oschina.net/u/3313889/blog/871581
运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...相关推荐
- 百度地图api离线开发(示例源代码)
相关教程: 1.如何搭建WEB离线地图开发环境 2.下载离线地图数据(金字塔瓦片数据) 3.离线地图二次开发接口(离 ...
- 【百度地图API】JS版本的常见问题
1.请问如何将我的店铺标注在百度地图上?我是否可以做区域代理?在百度地图上标注是否免费? 答复: 这里只负责API的技术咨询,不解决任何地图标注问题.在百度地图上标注自己公司,即气泡标注业务.该业务已 ...
- 百度地图api之如何自定义标注图标
在百度地图api中,默认的地图图标是一个红色的椭圆形.但是在项目中常常要求我们建立自己的图标,类似于我的这个 操作很简单,分如下几步进行 步骤一:先ps一个图标,大小要合适,如果要背景透明的,记得保存 ...
- Android 百度地图API实现实时定位
首先需要注册百度地图的开发者账号,选择个人开发者就可以.百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 然后获取AK这个在网上都有可以自己查看.下载.配置sdk可以 ...
- 【百度地图API】如何制作班级地理通讯录?LBS通讯录
原文:[百度地图API]如何制作班级地理通讯录?LBS通讯录 摘要:班级通讯录必备的功能,比如人员列表,人员地理位置标注,展示复杂信息窗口,公交和驾车等.一般班级人员都不会超过300个,因为可以高效地 ...
- 百度地图API的第一次接触
因为项目的需求,第一次接触了百度API. 第一步:引用百度地图API的脚本 如果在局域网环境中,要把地图文件和js文件都要下载下来 <script type="text/javascr ...
- python百度地图api经纬度_详解用Python调用百度地图正/逆地理编码API
一.背景 (正)地理编码指的是:将地理位置名称转换成经纬度: 逆地理编码指的是:将经纬度转换成地理位置信息,如地名.所在的省份或城市等 百度地图提供了相应的API,可以方便调用.相应的说明文档如下: ...
- react项目使用百度地图API
文章目录 前言 一.接入API 1.登录百度地图 2.创建应用,获取密钥 3.引入API 4.当作模块导入BMap 二.使用 1.引入 2.展示地图 三.效果展示 总结 前言 最近在开发一款react ...
- 最全面的百度地图JavaScript离线版开发
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5822231.html 项目要求web版百度地图要离线开发.这里总结下自己的开发过程和经验. 大概需求是:每辆 ...
最新文章
- struts1.2上传多个文件
- 数据库查询的数据导出到xls表,集合数据导出到xls表
- buu Quoted-printable
- android OKHttp的基本使用详解
- 水晶报表中对某一栏位值进行处理_【节能学院】能耗管理系统在某超市嘉兴店二期工程的设计与应用...
- MongoDB索引策略和索引类型
- java 生成器 设计模式_Java中的生成器设计模式
- python 音速_中国大学MOOC的APP(慕课)2021用Python玩转数据章节答案
- linux下php支持mysql_linux下php扩展mysqli的支持 .
- POJ 1692 Crossed Matchings dp[][] 比较有意思的dp
- DXUT框架剖析系列文章(原创:天行健 君子当自强而不息)
- 多源最短路(Floyd算法)
- Android新浪微博开发(3)JSon解析
- binwalk和foremost的使用。
- 奥克兰大学计算机专业世界排名,奥克兰大学,15学科排名世界前50!
- 讲真,只有low逼才热衷于打脸
- info There appears to be trouble with your network connection. Retrying...
- 腾讯云通信WebIM事件回调的坑~
- 走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)[转]...
- 万字泣血解析割韭菜内幕,程序员别老想着做副业
热门文章
- Java、JSP户籍管理系统的设计与实现
- 【海思篇】【Hi3516DV300】十八、TSENSOR 芯片温度检测驱动 开发
- VC2019基于MFC对话框——加法计算器
- 前端开发必备工具:WhatFont Bookmarklet-方便的查询网页上的字体
- Equals与==的区别
- 来自Window Presentation Foundation Program Design的读书笔记 (第四篇 下)
- [附源码]Python计算机毕业设计SSM基于web的烟草售卖系统(程序+LW)
- onclick ondblclick事件共存的方法
- jq select 修改选中_「jquery select」jquery操作select(取值,设置选中) - seo实验室
- 搜狗地图api android,搜狗地图API - Sogou Maps Service API