百度地图离线开发2.0

article/2025/11/7 6:01:37

在这里插入图片描述

目录

项目运行环境

html中所有的元素都是可以选中的,在地图中也可以的,选中时整个地图会出现蓝色的选中效果,要去除这种现象可以使用下面样式设置

设置地图显示的最大、最小级别

设置地图显示范围,超出范围后自动回弹

移动地图,地图将自动从一个地方到拎另一个地方

缩放地图

地图拖拽

获取地图显示范围

获取两点之间的距离

添加删除工具条、比例尺

自定义版权控制组件

绘制点,线,面


如果需要项目,可适当联系博主


项目运行环境

  1. 下载瓦片地图,必须是百度的瓦片地图
  2. 下载项目文件
  3. 如果是第一次启动直接点击项目里面的demo,可以出现效果,自带一部分瓦片地图
  4. 要修改项目时将baidumap_offline_v2_load.js里面的加载地图API主文件的文件名改为baidumap_offline_v2_20160822.js而不是使用该原来的baidumap_offline_v2_20160822_min.js
  5. 如果要制定自己的项目所在目录baidumap_offline_v2_load.js里面的配置项修改,注意自己的瓦片地图的图片的后缀名
  6. 瓦片地图一般是按照目录去查找,比如/baidumapv2/tiles/10/184/62.png的文件顺序去查找,但是有序下载器不同,最后一级的文件名可能略有差异,比如我是用的下载器,最后一级的图片名称就是tiles/10/184/bdm_184_62_10.png,这就需要去baidumap_offline_v2_20160822.js文件中的5369行左右,也可以在文件中搜索使用本地的瓦片即可找到,修改return的文件目录以及文件名称
  7. baidumapv2_demo中找一个demo初始化地图,设置中心点坐标和地图级别,将中心点设置到自己下载的瓦片地图上面
  8. 打开自己设置了中心点的html,如果出现自己下载的瓦片地图说明基本初始化地图成功,可以使用,参照下面给出的demo使用,如果没有出现,打开谷歌浏览器控制台,找到NetWork,刷新网页,找到未成功加载的图片,打开图片的Headers查看路径以及文件名是否正确;
  9. 在项目中有一个tools文件夹,里面有一个coordinate.js包含各种坐标转换
  10. 当所有的配置完毕时,如果还想要使用baidumap_offline_v2_20160822_min.js,将里面相关的配置修改就可以使用

地图api的使用,这里只列举基本的,其他的在项目中有离线手册,

1.html中所有的元素都是可以选中的,在地图中也可以的,选中时整个地图会出现蓝色的选中效果,要去除这种现象可以使用下面样式设置

/* 让页面的元素不可以选中 */
body{-o-user-select: none;-moz-user-select: none; /*火狐 firefox*/-webkit-user-select: none; /*webkit浏览器*/-ms-user-select: none; /*IE10+*/-khtml-user-select: none; /*早期的浏览器*/user-select: none;
}
2. 显示地图
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
<!-- 创建显示地图的盒子,设置大小,设置后检查是否有高德和宽度-->
<div id="map_demo"></div>
<script type="text/javascript">// 创建Map实例,map_demo指向显示地图的盒子var map = new BMap.Map("map_demo"); // 初始化地图,设置中心点坐标和地图级别map.centerAndZoom(new BMap.Point(108.945171,34.38547), 10);//添加地图类型控件 离线只支持电子地图,卫星/三维不支持//map.addControl(new BMap.MapTypeControl());  //map.setCurrentCity("北京");          // 设置地图显示的城市 离线地图不支持!!map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放map.addControl(new BMap.NavigationControl()); //缩放按钮
</script>
3. 设置地图显示的最大、最小级别
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
var map = new BMap.Map("map_demo", {minZoom:2,maxZoom:8});    // 创建Map实例时就可以指定
4. 设置地图显示范围,超出范围后自动回弹
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<script type="text/javascript" src="baidumapv2/tools/AreaRestriction_min.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
//百度地图API功能	
var map = new BMap.Map("map_demo");
map.centerAndZoom(new BMap.Point(116.406201,39.914466), 8);//北京一处建筑物坐标
map.enableScrollWheelZoom();
//下面两个坐标,第一个是范围的左上角的坐标,第二个是范围右下角的坐标.这两个坐标要将上面的坐标包含
var b = new BMap.Bounds(new BMap.Point(116.199231,40.03655),new BMap.Point(116.574651,39.820542));
try {	BMapLib.AreaRestriction.setBounds(map, b);
} catch (e) {alert(e);
}
5. 移动地图,地图将自动从一个地方到拎另一个地方
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");       
map.centerAndZoom(new BMap.Point(116.386079,39.957397),8); //北京坐标
setTimeout(function(){map.panTo(new BMap.Point(117.296745,38.980628));   //两秒后移动到天津
}, 2000);
6. 缩放地图
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
//两秒后从5级地图到8级地图
var map = new BMap.Map("map_demo");  
map.centerAndZoom(new BMap.Point(116.386079,39.957397), 5); 
setTimeout(function(){map.setZoom(8);   
}, 2000);  //2秒后放大到8级
map.enableScrollWheelZoom(true);
7. 地图拖拽
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");            // 创建Map实例
//初始化时,即可设置中心点和地图缩放级别。
map.centerAndZoom(new BMap.Point(116.386079,39.957397),8);  
map.enableScrollWheelZoom(true);
map.disableDragging();     //禁止拖拽
setTimeout(function(){map.enableDragging();   //两秒后开启拖拽//map.enableInertialDragging();   //两秒后开启惯性拖拽
}, 2000);
*8. *获取地图显示范围
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
var map = new BMap.Map("map_demo");            
map.centerAndZoom(new BMap.Point(116.399877,39.910924), 8);  
var bs = map.getBounds();   //获取可视区域
var bssw = bs.getSouthWest();   //可视区域左下角
var bsne = bs.getNorthEast();   //可视区域右上角
9. 获取两点之间的距离
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");//初始化地图,设置城市和地图级别。
map.centerAndZoom(new BMap.Point(108.953148,34.267891), 8); 
var pointA = new BMap.Point(108.866049,34.30917);  // 第一个点
var pointB = new BMap.Point(108.983331,34.219906);  // 第二个点
var polyline = new BMap.Polyline([pointA,pointB], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});  //定义折线以及样式
map.addOverlay(polyline);     //添加折线到地图上
console.log('从第一个点到第二个点的距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。')//获取两点距离,保留小数点后两位

在这里插入图片描述

10. 添加删除工具条、比例尺
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");
map.centerAndZoom(new BMap.Point(116.40965,39.905168), 8);var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,仅包含平移和缩放按钮
/*缩放控件type有四种类型:BMAP_NAVIGATION_CONTROL_SMALL:仅包含平移和缩放按钮;BMAP_NAVIGATION_CONTROL_PAN:仅包含平移按钮;BMAP_NAVIGATION_CONTROL_ZOOM:仅包含缩放按钮*///添加控件和比例尺map.addControl(top_left_control);        
map.addControl(top_left_navigation);     
map.addControl(top_right_navigation);    //移除控件和比例尺//map.removeControl(top_left_control);     
//map.removeControl(top_left_navigation);  
//map.removeControl(top_right_navigation); 

在这里插入图片描述

11. 自定义版权控制组件
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 8);var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_RIGHT});   //设置版权控件位置
map.addControl(cr); //添加版权控件var bs = map.getBounds(); //返回地图可视区域
cr.addCopyright({ id: 1, content: "<a href='#' style='font-size:20px;background:skyblue'>自定义版权控件!</a>", bounds: bs });
12. 绘制点,线,面
<!--加载需要的文件,文件路径使用自己指定的路径-->
<script type="text/javascript" src="/baidumap_offline_v2_load.js"></script>
<link rel="stylesheet" type="text/css" href="baidumapv2/css/baidu_map_v2.css"/>
// 百度地图API功能
var map = new BMap.Map("map_demo");
var point = new BMap.Point(116.399, 39.910);
map.centerAndZoom(point, 8);var marker = new BMap.Marker(new BMap.Point(116.404, 39.915),{strokeColor:"black"}); // 创建点
marker.addEventListener("click", function(){ alert("您点击了标注"); 
});
//创建绿色折线,
var polyline = new BMap.Polyline([new BMap.Point(116.399, 39.910),new BMap.Point(116.405, 39.920),new BMap.Point(110.425, 36.900)
], {strokeColor:"green", strokeWeight:2, strokeOpacity:0.5});  //添加圆形取余标记
var circle = new BMap.Circle(point, 25000,{strokeColor:"red", strokeWeight:2, strokeOpacity:0.5}); //创建圆//创建多边形
var polygon = new BMap.Polygon([new BMap.Point(116.387112,39.920977),new BMap.Point(116.385243,36.913063),new BMap.Point(110.394226,39.917988),new BMap.Point(112.401772,38.921364),new BMap.Point(115.41248,39.927893)
], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); //创建矩形
var pStart = new BMap.Point(116.692214,39.918985);
var pEnd = new BMap.Point(118.41478,33.911901);
var rectangle = new BMap.Polygon([new BMap.Point(pStart.lng,pStart.lat),new BMap.Point(pEnd.lng,pStart.lat),new BMap.Point(pEnd.lng,pEnd.lat),new BMap.Point(pStart.lng,pEnd.lat)
], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); //添加覆盖物map.addOverlay(marker);            //增加点
map.addOverlay(polyline);          //增加折线
map.addOverlay(circle);            //增加圆
map.addOverlay(polygon);           //增加多边形
map.addOverlay(rectangle);         //增加矩形//清除覆盖物//map.clearOverlays();         

在这里插入图片描述


http://chatgpt.dhexx.cn/article/oV9mIM4M.shtml

相关文章

Android 百度离线地图下载完后调用下载好的离线包

前言 最近公司项目需求添加百度地图离线下载后离线地图查看功能&#xff0c;本以为看着文档写一下就行了&#xff0c;看了文档后发现百度文档着实坑爹&#xff0c;文档与实际开发不符合&#xff0c;网上搜了一下&#xff0c;也没搜到切实有用的文章&#xff0c;遂决定写一篇&…

Android百度地图(四)如何引入离线地图包

Android百度地图&#xff08;四&#xff09;如何引入离线地图包 本文代码在http://blog.csdn.net/xyzz609/article/details/51955363的基础上进一步修改&#xff0c;有兴趣的同学可以研究下怎么修改的 本篇我们准备为地图添加&#xff1a;引入离线地图包 本文参考的是http:/…

如何下载百度地图离线包并导入OruxMaps

一、什么是OruxMaps OruxMaps是一款支持本地离线地图包的地图应用&#xff0c;适合户外旅行&#xff0c;同时也支持加载OpenStreetMap在线地图&#xff0c;可以导入OZI格式并转换制作成自己的地图&#xff0c;它还可以记录、保存导入航迹、航点并统计相关信息并提供校准功能。…

WinEdit如何修改字体大小

1、在help一栏的后面空白处&#xff0c;右键出现下图 2、点击Options Interface&#xff0c;出现下图&#xff1a; 3、点击Font&#xff0c;出现下图&#xff0c;在FontSize处修改 4、保存Font文件&#xff0c;右键选择Load Script。

WinEdit编辑器中中文乱码

这个问题困扰了我很久。我的电脑上装的CTEX的最新版本&#xff0c;原来我的系统是windows 7 64位系统。装好了CTEX之后&#xff0c;在里面可以直接输入中文&#xff0c;显示和编译生成的PDF文件都正常。但是后来系统崩溃了一次就装回了Windows XP SP3系统。这次装好CTEX之后&am…

WinEdit初使用

下载了CTex和各种文档&#xff0c;还是没搞懂怎么用。大部分文献都是讲解语法&#xff0c;对于我这个菜鸟来说&#xff0c;简单的hello world 都编不出来&#xff0c;对语法就更看不下去了&#xff0c;终于在百度和摸索中得到了hello world。 1、新建一个文档&#xff0c;大家…

解决 winedit 打开tex文件 reading error(亲测可行)

从网上下载的论文模板&#xff0c;发现直接双击打开.tex文件&#xff08;默认关联用winedit打开&#xff09;时会出现reading error&#xff0c;然后看不到任何文字&#xff08;网上有人讨论打开是乱码的问题&#xff0c;但是我的是完全看不到任何东西&#xff09;&#xff0c;…

Winedit修改快捷键

工欲善其事必先利其器&#xff0c;疫情期间只能在家办公&#xff0c;一个小小笔记本没有两个大屏幕来的舒服&#xff0c;因此为了最大化利用屏幕大小&#xff0c;将所有的界面全部隐藏。但是每次编译的时候&#xff0c;我习惯用pdflatex选项&#xff0c;但是wineidt没有设定其快…

winedt103系统找不到指定文件_latex排版(CTeX winEdit输出“系统找不到指定的文件”的终极解决办法)...

这个问题好像经常出现在Win7系统下。winEdit输出“系统找不到指定的文件”&#xff0c;这里“指定的文件”是“TeXify.exe”等需要运行的程序&#xff0c;而不是当前需要编译的“.tex”文件。所以&#xff0c;问题的本质就是系统找不到“TeXify.exe”等可执行文件&#xff0c;解…

winedit 永久试用的办法

软件把安装信息放在注册表里面这种做法真是方便了我等草民啊。 打开CMD。 运行下面的命令。 reg delete "HKEY_CURRENT_USER\Software\WinEdt 7" /v "Install Build" /f reg delete "HKEY_CURRENT_USER\Software\WinEdt 7" /v "Install Roo…

如何粘贴winedit编辑器console中的错误文本信息

补充一个小技巧 如何粘贴winedit便捷器console中的错误文本信息&#xff0c;如下图所示&#xff0c;是报错的信息&#xff0c; 我们点击如下图所示的复制按钮 然后打开记事本粘贴即可 然后使用ctrlf键搜索错误的前两个单词&#xff08;或者一个&#xff09;之后就可以复制错误信…

WinEdit 的algorithm2e包自定义一个带竖线的模块代码

WinEdit 的algorithm2e包自定义一个带竖线的模块 代码 \documentclass{ctexart} \usepackage[linesnumbered,ruled,vlined]{algorithm2e} \begin{document} \begin{algorithm} \caption{The pseudocode of solution procedures} \label{Algo:SoluStep} \KwIn{all data involv…

安装miktex+winedit

1.前言 在使用latex写作编辑英文论文时&#xff0c;最近被安利推荐miktexwinedit&#xff0c;来实现写作工具的准备。 网上资料显示&#xff0c;用Latex排版文档&#xff0c;首先要用文本编辑器编辑好tex文档&#xff0c;然后通过各种程序编译&#xff0c;得到pdf文档用于打印…

如何使用bibtex插入参考文献(基于WinEdit)

如何使用bibtex插入参考文献&#xff08;基于WinEdit&#xff09; 目录第一大步:下载被引用文章的bib引用第二大步:在论文论文添加引用信息第三大步&#xff1a;编译排版结果注意事项编写心得 目录 第一大步:下载被引用文章的bib引用 第二大步:在论文正文添加引用信息 第三大步…

text生成pdf之ctexwineditmiktexgbk2uni的安装使用方法

因为工作原因&#xff0c;需要将.tex文件转成pdf文档。于是进行了winedit及ctex文件安装&#xff0c;但发现走了一些弯路。为了避免再有同行走相同的弯路&#xff0c;于是我将相关的经验写下来&#xff0c;供大家参考。 一&#xff1a;误区 从www.winedt.com网站上下载winedt安…

Winedit 下载第三方库

在用 Winedit 编译 tex 文件时&#xff0c;出现如下错误&#xff1a; ! LaTeX Error: File threeparttable.sty not found. 出现该错误时&#xff0c;一般是我们的 Winedit 下的编译器缺乏相应的第三方库&#xff0c;此时只需要去网站上下载相应的库即可&#xff0c;这里推荐&a…

Winedit 找不到包错误解决方法

没错&#xff0c;我是一个Winedit初学者。但我有信心一天搞会他 这个问题感觉以后会很常见&#xff0c;害怕自己将来忘了&#xff0c;于是特此记忆。并给一起处于新手阶段的朋友们一个友好的解答。 首先从CTAN网站上下载这个包 simplewick 居然没有.sty文件&#xff0c;佛了。…

Winedit7.0自定义一键编译

因为每次编译论文都要按三个按键&#xff1a;LaTex->dvips->ps2pdf&#xff0c;所以自定义了一个快捷按钮&#xff0c;可以一键执行这三个操作。 1、 Winedit工具栏&#xff1a;Option → Option Interface → Menus and Toolbar 2、编写myclick.edt&#xff0c;内容如…

winEdit无法生成PDF解决方案

安装winEdit经过编译无法生成PDF文件并报错: pdflatex.exe:Bad parameter value pdflatex.exe:Data: font_mem_size 解决方案步骤&#xff1a; A:下载安装Tex live, 安装目录D:\texlive\2022 B:打开winEdt-->options-->cofigurations选择Tex live C&#xff1a;在w…

QQ音乐接口api,包括付费音乐、无损音乐、高品质音乐地址解析接口api

QQ音乐网站所有音乐&#xff08;包括付费、无损等版权音乐解析接口地址url&#xff09;。 mp3 普通高品 http://dl.stream.qqmusic.qq.com/M5000012gqVh4fFvVK.mp3?vkey419F0FD2E2552C95C4E76BFDFBF2BC331A2983AAEDC9CF91BBD4195603FE19B6550874248A1A87410D84D0405B2ABBD0F53…