openlayers3应用(二):加载百度离线瓦片地图

上一篇文章介绍了使用openlayers3加载百度在线地图,对某些项目或应用场景比如不允许上外网的单位,某些项目只针对一定区域地图加载应用,比如一个县的地图,可以采用下载百度瓦片地图,在服务器或者本机单独部署的方式进行。

本篇主要讲述如何使用openlayers3调用下载的百度离线瓦片地图。瓦片地图下载器,网上有很多,在此不做详细描述。

Openlayers3加载离线百度瓦片地图,效果以及代码如下:


代码如下:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title></title>

<link rel="stylesheet" type="text/css" href="ol/ol3/css/ol.css" />

<style type="text/css">

body, #mainMap {

border: 0px;

margin: 0px;

padding: 0px;

width: 100%;

height: 100%;

font-size: 13px;

}

</style>

<script type="text/javascript" src="ol/ol3/build/ol-debug.js"></script>

</head>

<body>

<div id="mainMap">

</div>

</body>

</html>

<script type="text/javascript">

// 自定义分辨率和瓦片坐标系

var resolutions = [];

var maxZoom = 18;

// 计算百度使用的分辨率

for (var i = 0; i <= maxZoom; i++) {

resolutions[i] = Math.pow(2, maxZoom - i);

}

var tilegrid = new ol.tilegrid.TileGrid({

origin: [0, 0],

resolutions: resolutions    // 设置分辨率

});

// 创建百度地图的数据源

var baiduSource = new ol.source.TileImage({

projection: ‘EPSG:3857‘,

tileGrid: tilegrid,

tileUrlFunction: function (tileCoord, pixelRatio, proj) {

var z = tileCoord[0];

var x = tileCoord[1];

var y = tileCoord[2];

// 百度瓦片服务url将负数使用M前缀来标识

if (x < 0) {

x = -x;

}

if (y < 0) {

y = -y;

}

return "tiles/" + z + "/" + x + "/" + y + ".png";

}

});

// 百度地图层

var baiduMapLayer2 = new ol.layer.Tile({

source: baiduSource

});

// 创建地图

var map =new ol.Map({

layers: [

baiduMapLayer2

],

view: new ol.View({

// 设置成都为地图中心

center: ol.proj.transform([104.06, 30.67], ‘EPSG:4326‘, ‘EPSG:3857‘),

zoom: 3

}),

target: ‘mainMap‘

});

</script>

时间: 2024-12-28 01:56:14

openlayers3应用(二):加载百度离线瓦片地图的相关文章

openlayers应用(二):加载百度离线瓦片

上一篇文章介绍了使用openlayers3加载百度在线地图,对某些项目或应用场景比如不允许上外网的单位,某些项目只针对一定区域地图加载应用,比如一个县的地图,可以采用下载百度瓦片地图,在服务器或者本机单独部署的方式进行. 本篇主要讲述如何使用openlayers3调用下载的百度离线瓦片地图.瓦片地图下载器,网上有很多,在此不做详细描述. Openlayers3加载离线百度瓦片地图,效果以及代码如下: 代码如下: <!DOCTYPE html> <html xmlns="http

IE开发人员工具显示异常,IE加载百度地图,BMap“未定义”

现象:IE开发人员工具,打开界面("网络选项卡")一片空白. 解决:点击Internet选项-高级-重置,重启电脑(有提示). 现象:IE加载百度地图,BMap"未定义", 解决:上面的重置后,重启浏览器,意外地百度地图可以用了.( 现象: http://api.map.baidu.com/api?  响应出现问题,没有继续加载http://api.map.baidu.com/getscript?v=2.0&ak= ) 这里还可以参考这篇博文(这个原来也设置

ArcMap和ArcGIS Pro加载百度地图

前面发布了两篇我用ArcBruTile开发用于ArcMap加载百度地图的插件ArcBruTileBaidu,放在网上后评论和反响还不错,还有两位大学同学通过百度搜索居然搜到我本人!文章和技术介绍也被网络上复制粘贴了很多次,开发了那么多没人用的数字城市平台软件和GIS系统,这一个工具才感觉自己还有点用. 毕竟只是茶余饭后的兴趣爱好,对该插件升级和维护的也不是很及时,也导致很多需求没跟上,对不起各位用户. ArcBruTileBaidu插件有如下几个大的缺陷: 1.    需要下载安装包进行安装,极

Android Bitmap 全面解析(二)加载多张图片的缓存处理

一般少量图片是很少出现OOM异常的,除非单张图片过~大~ 那么就可以用教程一里面的方法了通常应用场景是listview列表加载多张图片,为了提高效率一般要缓存一部分图片,这样方便再次查看时能快速显示~不用重新下载图片但是手机内存是很有限的~当缓存的图片越来越多,即使单张图片不是很大,不过数量太多时仍然会出现OOM的情况了~本篇则是讨论多张图片的处理问题-----------------------------------------------------------------------图片

Arcgis for js加载百度地图

概述: 在前面的文章里提到了Arcgis for js加载天地图,在本节,继续讲解如何在Arcgis for js中加载百度地图. 效果: 地图 影像-无标注 影像-有标注 实现: 第一,在此感谢http://www.cnblogs.com/chenyuming507950417/p/3343729.html这篇文章的主人,给了我很大的启发与帮助,因为一直在找相关的参数,都不对,只有这个参数是没有问题的. 第二,百度地图可调用的有地图切片,影像切片,以及道路等POI切片,我将之用TiledMap

openlayers 3加载百度、高德、google瓦片地图

1.加载高德地图 //高德地图 var AMapLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}' }) }); 2.google地图 //google地图 var googleMapLayer = new ol.la

OpenLayers3基础教程——加载资源

概述: 本节讲述如何在Ol3中加载wms图层并显示到地图中. Ol3下载: 你可以在OL官网去下载,下载地址为http://openlayers.org/download/,也可以去我的百度云盘下载,下载地址为http://pan.baidu.com/s/1o6wwHTo.官网上的最新版本为3.6.0,我的网盘的版本为3.0.0,不过官网上的链接好像是失效的. OL3必须资源引入: OL3必须引入的资源有两个,一个为样式文件,ol.css:一个为js文件,ol.js. OL3加载wms: 在Ol

在bootstrap modal 中加载百度地图的信息窗口失效解决方法

这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事. 前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能. 页面演示地址:http://www.lyytqm.com/Dealerships 点击地址区域在模态窗口中显示百度地图,并在地图中标注点位,显示窗口信息,但信息窗口展示的信息频繁失效,仅显示名称. 更换了各种加载数据方式不能解决,在蹲厕所时想到了原因,即可给出解决方法. 原因是bootstrap modal 以及动画

node 异步加载百度地图

export default { init: function (){ const AK = "AFNGWoP3YTGstfhT6BQUcsm5xGodgTIv"; const BMap_URL = "https://api.map.baidu.com/api?v=3.0&ak="+ AK +"&s=1&callback=onBMapCallback"; return new Promise((resolve, rejec