`
cdguiyi
  • 浏览: 15736 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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>

 

  • 大小: 252.7 KB
分享到:
评论
1 楼 h1612993 2017-03-28  
想请教你一下,你加载百度地图12级别以上,传入的中心点经纬度,偏差不会很大吗?我传入的偏差很大,说是因为加载规则不一样导致的,你是如何处理的?

相关推荐

    openlayers加载本地离线地图瓦片(重新发2018-10-23)

    在GIS(地理信息系统)领域,OpenLayers是一个广泛使用的开源JavaScript库,用于在Web浏览器中创建交互式的地图应用。本文将详细讲解如何利用OpenLayers加载本地离线地图瓦片,这在没有网络连接或者需要保障地图数据...

    openlayers加载本地离线底图瓦片google数据直接运行即可(亲测)

    总的来说,这个案例展示了如何使用OpenLayers和本地离线瓦片数据创建一个地图应用,这对于户外活动、野外考察或在无法访问互联网的环境中尤其有用。同时,这也涉及到Web开发的基础知识,如JavaScript、地理信息系统...

    openlayers3 调用离线谷歌切片地图 示例

    这个示例专注于使用OpenLayers 3调用离线谷歌切片地图,这是一个非常实用的功能,特别是对于那些无法连接到互联网或者希望在本地环境中运行地图应用的用户。 首先,我们需要了解OpenLayers 3的基本概念。OpenLayers...

    openlayers发布简易离线地图DEMO

    对于离线瓦片,我们可以使用`ol.source.XYZ`,并提供一个URL模板,指向瓦片数据的位置。URL模板通常会包含`{z}`、`{x}`和`{y}`占位符。 - **Layer**: 然后,创建一个TileLayer,将Source与之关联。这个Layer将在...

    百度离线地图实现(可完全实现断网访问)

    该示例为百度离线地图的一些实现,根据经纬度对离线地图实现标点,从后台返回数据,页面用ajax调用接口获取json数据,用OpenLayers实现离线地图的发布,里面包含了示例区域的离线地图瓦片以及网页Demo

    离线地图实现示例(可完全实现断网访问)

    本示例基于OpenLayers库实现,它是一款开源的JavaScript库,专用于构建交互式的二维和三维地图应用。通过使用OpenLayers,我们可以将预先下载的地图瓦片存储在本地,然后在需要时加载这些本地瓦片,从而实现离线访问...

    google离线API调用google瓦片叠加TMS瓦片源码及数据

    它可以帮助开发者在离线环境下创建具有丰富地图信息的应用,同时也可以作为一个学习资源,帮助他们更好地理解和应用地图服务相关的技术。对于有兴趣进行地图开发或GIS应用的人员来说,这是一份非常有价值的参考资料...

    根据经纬度对离线地图进行标点示例(用Ajax调用后台接口返回Json数据)

    1. **离线地图处理**:离线地图通常由一系列瓦片组成,每个瓦片是一个小的图像文件,覆盖地图的一个特定区域。在本案例中,"outlinemap"可能包含这些瓦片文件,按照特定的目录结构存储。OpenLayers可以通过配置来...

    openlayer调用geoserver发布的地图实现地图的基本功能

    下面将详细解释如何使用OpenLayers调用GeoServer发布的地图以及实现地图的基本功能。 首先,GeoServer是OGC(开放地理空间联盟)标准的服务器实现,它支持WMS(Web Map Service)和WFS(Web Feature Service)等...

    解决openlayers跨域访问的解决方案

    OpenLayers 是一个流行的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并可以与各种数据源集成。然而,由于浏览器的同源策略限制,当你尝试从不同的域加载地图或者...

    百度地图切图工具BaiduMapTileCutter

    BaiduMapTileCutter是一款专用于处理百度地图的切图工具,它能够帮助用户快速地将百度地图的高分辨率图像切割成多个小的正方形瓦片(通常称为“Tile”),这些瓦片以特定的层级和坐标系统进行组织,便于在网络地图...

    MapDownloader

    特别的是,MapDownloader还能够与流行的开源JavaScript库OpenLayers 3/4无缝集成,这对于需要构建离线地图应用的开发者来说,是一个非常实用的解决方案。 首先,我们要理解MapDownloader是如何工作的。...

    openlayer在线标绘,并实现增删改查

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式地图应用。在这个"openlayer在线标绘,并实现增删改查"的主题中,我们将深入探讨如何利用OpenLayers加载离线地图,进行在线标绘,以及如何实现标绘...

    Web Gis_webgis_GIS地图开发Js_gis_webgis地图来源_web地图可视化_

    Web GIS(Web地理信息系统)是将地理信息系统(GIS)的功能与Web技术相结合,使得地图...通过不断学习和实践,开发者可以创建出功能强大、用户友好的Web地图应用,满足各种需求,从简单的地图显示到复杂的地理分析。

    基于GeoServer开发WebGIS相关文档

    OpenLayers是一个强大的前端地图库,可以用来创建交互式地图应用。通过GeoServer,我们可以将各种地理数据格式转换为Web可访问的WMS或WFS服务,然后利用OpenLayers在网页上展示,包括Google卫星影像。 接着,...

    openlayer3加载谷歌地图例.rar

    OpenLayer 3是一款开源的JavaScript库,用于在Web上创建交互式地图应用。它支持多种地图服务,包括谷歌地图。本教程将详细讲解如何利用OpenLayer 3加载谷歌地图的三种不同类型:地形图、影像图和交通图。 首先,...

    Tabby's EasyMap1.0 源代码

    Tabby's EasyMap1.0 是一款地图应用的源代码,它可能是一个轻量级、易用的地图软件,用于帮助用户快速浏览、定位和导航。从名称来看,它旨在简化地图相关的操作,使得用户能够方便地进行地理信息的查询和管理。在...

Global site tag (gtag.js) - Google Analytics