MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

【C友贴图区】

C友贴图和看图,请到此版
勿发违规图片

【C友开心吧】

C友交流开心笑话的区域
乐一乐,就在开心吧

【心情咖啡屋】

分享你的心情和通信生活
C友交流心情的地方

【求职招聘区】

招聘,求职,职业交流
讨论通信人的职场前景



  • 阅读:9555
  • 回复:1
[原创] 百度离线API获取坐标和添加标注
诺一小宝贝
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 140
帖子 28
威望 12003 个
礼品券 0 个
专家指数 0
注册 2015-11-5
专业方向  工程测量
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2016-01-26 17:07:56  只看楼主 
前言:对百度地图的使用已经成为了我们生活中的一部分,对于习惯使用百度地图的朋友来说更是不可或缺。但是如果没有网络的话就不能正常使用百度地图的服务,制作一款离线地图在这个时候就显得尤为重要,那我们应该如何制作呢,今天就给大家分享一下如何制作离线百度地图并获取坐标和添加标注。

1、材料准备
水经注百度电子地图下载器 百度地图离线API:BaiduMap V1.3

百度地图离线API下载地址:



2、制作过程

2.1下载瓦片
打开水经注百度电子地图下载器,将地图缩小至全球可见,框选上全球(图1),双击左键,弹出“新建任务”,设置下载名称和选择下载级别,这里我选择的是1到6级(图2),单击“确认”开始下载。



图1



图2

2.2导出瓦片
点击“我的下载”,勾选上刚刚下载的地图数据,就可以在下面查看到刚才下载的地图(图3),点击“导出拼接图片”,弹出“导出图片数据”对话框,在“导出类型”一栏选择“瓦片.百度”(图4),点击“输出”开始导出瓦片。导出完成后,找到瓦片存储的文件夹,可以看到导出的瓦片(图5)



图3



图4




图5

2.3加载瓦片
打开文件夹BaiduMap V1.3,我们可以看到3个文件夹和1个示例代码html文件和一个css文件(图6),其中images文件夹是存储的地图相关的控件图标的;js文件夹存储的是离线API的相关js代码;demo.html是调用瓦片的示例代码;bmap.css是相关的css样式文件。最重要的是maptile文件夹,里面存放的是需要调用的瓦片。
接下来讲如何调用瓦片,这里其实只要把下载好的瓦片复制到maptile文件夹下就可以了,这里给大家讲解一下代码的组成。



图6

2.4代码组成

2.4.1首先我们需要连接到百度的API上:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" c />
<title>百度离线版DEMO</title>
<script type="text/javascript" src="js/apiv1.3.min.js"></script>
<!--script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script-->
<link rel="stylesheet" type="text/css" href="bmap.css"/>
</head>
</html>

2.4.2新建一个容器,用以存放地图和相关的控件:

<body>
<div style="width:100%;height:100%;border:1px solid gray;position:absolute;" id="container"></div>
<div id="position" style="width:220px;height:10%;border:1px solid gray;position:absolute;background-color:#cacfd2;filter: Alpha(opacity=50);opacity:0.6;right:1px;bottom:1px;font-size:15px">

</div>
</body>

2.4.3加载百度的地图和添加相关的控件:

<script type="text/javascript">
var mapOptions = {
//minZoom: 12, 地图最小层级
mapType: BMAP_NORMAL_MAP
}
var map = new BMap.Map("container", mapOptions);//设置卫星图为底图BMAP_PERSPECTIVE_MAP
var initPoint = new BMap.Point(116.404, 39.915); // 创建点坐标

map.centerAndZoom(initPoint,3);// 初始化地图,设置中心点坐标和地图级别。
map.enableScrollWheelZoom();// 启用滚轮放大缩小。
map.enableKeyboard(); // 启用键盘操作。
map.enableContinuousZoom();
//启用连续缩放效果

// ----- control -----
map.addControl(new BMap.NavigationControl()); //地图平移缩放控件
map.addControl(new BMap.ScaleControl()); //显示比例尺在右下角
</script>

2.4.4添加标注并获取坐标信息:

// ----- maker -----
addCabinMarker(initPoint);//设置标注点
function addCabinMarker(point) {
var cabinIcon = new BMap.Icon("images/marker_red_sprite.png", new BMap.Size(32, 37));
var cabinMarkerOptions = {
icon: cabinIcon,
enableDragging: true,
draggingCursor: "move",
title: "标注点"
}

var cabinMarker = new BMap.Marker(point, cabinMarkerOptions);

cabinMarker.setAnimation(BMAP_ANIMATION_DROP);



map.addOverlay(cabinMarker);

cabinMarker.addEventListener("dragging", function(e) {
document.getElementById("position").innerHTML = "坐标像素</br>x :" + e.pixel.x + " y :" + e.pixel.y + "<br>坐标经纬度</br>经度: " + e.point.lng + " 纬度: " + e.point.lat;//获取经纬度
});
}
现在,我们已经制作完成百度的离线地图了,现在给大家提供完整的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" c />
<title>百度离线版DEMO</title>
<script type="text/javascript" src="js/apiv1.3.min.js"></script>
<!--script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script-->
<link rel="stylesheet" type="text/css" href="bmap.css"/>
</head>
<body>
<div style="width:100%;height:100%;border:1px solid gray;position:absolute;" id="container"></div>
<div id="position" style="width:220px;height:10%;border:1px solid gray;position:absolute;background-color:#cacfd2;filter: Alpha(opacity=50);opacity:0.6;right:1px;bottom:1px;font-size:15px">

</div>
</body>
</html>
<script type="text/javascript">
var mapOptions = {
//minZoom: 12, 地图最小层级
mapType: BMAP_NORMAL_MAP
}
var map = new BMap.Map("container", mapOptions);//设置卫星图为底图BMAP_PERSPECTIVE_MAP
var initPoint = new BMap.Point(116.404, 39.915); // 创建点坐标

map.centerAndZoom(initPoint,3);// 初始化地图,设置中心点坐标和地图级别。
map.enableScrollWheelZoom();// 启用滚轮放大缩小。
map.enableKeyboard(); // 启用键盘操作。
map.enableContinuousZoom();
//启用连续缩放效果

// ----- control -----
map.addControl(new BMap.NavigationControl()); //地图平移缩放控件
map.addControl(new BMap.ScaleControl()); //显示比例尺在右下角
//map.addControl(new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_TOP_RIGHT, isOpen: true})); //缩略图控件

// ----- maker -----
addCabinMarker(initPoint);//设置标注点
function addCabinMarker(point) {
var cabinIcon = new BMap.Icon("images/marker_red_sprite.png", new BMap.Size(32, 37));
var cabinMarkerOptions = {
icon: cabinIcon,
enableDragging: true,
draggingCursor: "move",
title: "标注点"
}

var cabinMarker = new BMap.Marker(point, cabinMarkerOptions);

cabinMarker.setAnimation(BMAP_ANIMATION_DROP);



map.addOverlay(cabinMarker);

cabinMarker.addEventListener("dragging", function(e) {
document.getElementById("position").innerHTML = "坐标像素</br>x :" + e.pixel.x + " y :" + e.pixel.y + "<br>坐标经纬度</br>经度: " + e.point.lng + " 纬度: " + e.point.lat;//获取经纬度
});
}

</script>


3、总结
以上就是制作离线百度地图的方法,有兴趣的朋友可以自己试一下。如果想要制作百度地图卫星影像的离线地图,可以使用“水经注百度卫星地图下载器”下载百度卫星影像的瓦片,再用上面的方法加载就行了。


扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 对本帖内容的看法? 我要点评

     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧
    waynelin
    原始天尊
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    C友·贡献勋章   财富勋章·万元户   专家·高级勋章   C友·幸运勋章   C友·登录达人   财富勋章·富可敌国   财富勋章·财神   纪念勋章·六周年   纪念勋章·八周年   纪念勋章·十周年  
    积分 150314
    帖子 6848
    威望 11082408 个
    礼品券 1266 个
    专家指数 1219
    注册 2008-4-1
    专业方向  移动通信
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2016-01-27 21:01:28 
    技术问题,回答得专家指数,快速升级
    百度地图日渐普及。很实用。

    对本帖内容的看法? 我要点评

     
    [立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!]

    快速回复主题    
    标题 [原创] 百度离线API获取坐标和添加标注" tabindex="1">
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2025-12-19 22:17:58
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.429635 second(s), 16 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver