离线版的百度地图 js

前言:最近公司要做个离线版的百度地图,以完成客户的需求。

demo下载
https://github.com/huangxiaolong1992/xh-map/tree/master/map

查看了好多技术文章,推荐的都是水经注瓦片下载器。

但是,吐槽下所推荐 水经注瓦片下载器

  • 1 图片中带有水印
  • 2 下载瓦片只能下载到1-6个级别

这2点问题让人绝望,除非付费(这是用刀在割肉)

所以再此强烈推荐 百度瓦片地图下载器

一、下载瓦片
在这里插入图片描述
可下载瓦片到1-18级别,无水印,关键是还免费。
在这里插入图片描述
此处展示下载完的15个级别。

二、代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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"/>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
</head>
<body>
<style>
html,body{
  margin:0;
  padding:0
}

</style>
<div style="width:100%;height:100%;position:absolute;" id="container"></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(115.882551, 28.713486);    // 创建点坐标  此处为南昌的经纬度
	
	map.centerAndZoom(initPoint,15);                    // 初始化地图,设置中心点坐标和地图级别。
	map.enableScrollWheelZoom();                  // 启用滚轮放大缩小。
	map.enableKeyboard();                         // 启用键盘操作。  
	map.enableContinuousZoom();										//启用连续缩放效果
	// ----- control -----
	//map.addControl(new BMap.NavigationControl()); //地图平移缩放控件
	map.addControl(new BMap.ScaleControl()); //显示比例尺在右下角


	// ----- maker -----
	addCabinMarker(initPoint);
	
	function addCabinMarker(point) { 
		var cabinIcon = new BMap.Icon("./images/cabin.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);
		
	}
	
</script>

三。效果
在这里插入图片描述
总结:离线的百度地图,只能呈现地图的上的地位,如果需要得到当前位置的具体地址,就需要请求互联网的
http://api.map.baidu.com/?qt=rgc&x=12922828.9&y=4823386.36 这个接口。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
本人基于2017年12月最新API制作。 说明: 1)离线地图不是万能的, 有些依赖在线的功能是无法使用的, 请自行扩展 2)请查看 离线地图示例demo.html 里面的示例,或者查看地图API在线示例: http://developer.baidu.com/map/jsdemo.htm 3) 地图API请查看百度官方说明: http://developer.baidu.com/map/reference/index.php 4)如有更新,请查看网站: http://www.xiaoguo123.com/p/baidumap_offline_v21 5)此API用户大家交流学习,本人没有能力提供太多的技术帮助 6)由于某些用途导致的商业纠纷,和本人无关 新增: 1)支持显示卫星混合地图,瓦片图放到 tiles_hybrid 目录下 2)支持支定义混合图,瓦片图放到 tiles_self 目录下 3)增加根据城市名称设置地图中心, 请自行扩展map_city.js 4)增加鼠标测距示例 5)增加鼠标绘制线面示例 增加新的瓦片图: 1)使用地图下载工具(如太乐地图下载)下载你要的地区和级别 2)务必导出瓦片图(百度格式),可以选择导出jpg或png图形 3)按需要修改map_load.js,指定瓦片图的路径,或者按默认的来 4)目录说请看图片: 目录说明.jpg 基本的使用方法如下: 1)加载离线地图必须的文件: [removed][removed] <link rel="stylesheet" type="text/css" href="offlinemap/css/map.css"/> 2)增加一个容器用来显示地图 3)写JS脚本 [removed] var map = new BMap.Map("map_demo"); // 创建Map实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 7); // 初始化地图,设置中心点坐标和地图级别 map.setCurrentCity("武汉"); // 设置地图中心显示的城市 new! map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 map.addControl(new BMap.NavigationControl()); //缩放按钮 map.addControl(new BMap.MapTypeControl( {mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]} )); //添加地图类型控件 离线只支持普通、卫星地图; 三维不支持 [removed]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值