zoukankan      html  css  js  c++  java
  • openLayers绘制静态底图

    由于项目需要,需要是使用openlayers框架,于是开始安利一波openlayers,可以点击 https://openlayers.org/   进入他的官网下载相关资源和案例

    学习的过程总是慢慢来的,先就不在vue react等一下js框架下使用了,直接上html,哈哈

    首先去他官网里,https://openlayers.org/en/latest/doc/quickstart.html  进入快速开始界面,就是所谓的hello world 

    然后开始敲代码,在本地新建一个index.html

    <!doctype html>
    <html lang="en">
    
    <head>
        <script src="./js/ol.js"></script>
        <link rel="stylesheet" href="./js/ol.css" type="text/css">
        <style>
            .map {
                height: 400px;
                width: 100%;
            }
        </style>
        <title>OpenLayers example</title>
    </head>
    
    <body>
        <h2>My Map</h2>
        <div id="map" class="map"></div>
        <script type="text/javascript">
            var map = new ol.Map({
            target: 'map',
            layers: [
              new ol.layer.Tile({
                source: new ol.source.OSM()
              })
            ],
            view: new ol.View({
              center: ol.proj.fromLonLat([37.41, 8.82]),
              zoom: 4
            })
          });
        </script>
    </body>
    
    </html>

    然后编写以上代码,要是你直接用他官网上的cdn链接有点卡,可以先下载对应的资源本地引入

    接着打开这个页面,你会看到如下界面

     到此你就成功的建立了一个map

    注意:一个map里必不可少的参数是target--dom节点,view视图, layers图层

    接下来我们渲染一下自定义的静态图片

    使用的是openlayers的 ol.layer.Image, 话不多说直接上代码,哈哈

    将上面index.html中的script里的代码修改成如下界面

    <script type="text/javascript">
            //地图设置中心,设置到成都,在本地离线地图offlineMapTiles刚好有一张zoom为4的成都瓦片
            var center = ol.proj.transform([104.06667, 30.66667], 'EPSG:4326', 'EPSG:3857');
            //计算静态地图映射到地图上的范围,图片像素为550*344,保持比例的情况下,把分辨率放大一些
            var extent = [
                center[0] - 550 * 1000 / 2,
                center[1] - 344 * 1000 / 2,
                center[0] + 550 * 1000 / 2,
                center[1] + 344 * 1000 / 2
            ];
            var map = new ol.Map({
                target: 'map',
                view: new ol.View({
                    center: center,
                    zoom: 8,
                    minZoom: 5,
                    maxZoom: 12
                })
            });
            //加载静态图层
            map.addLayer(new ol.layer.Image({
                source: new ol.source.ImageStatic({
                    url: './images/1S1F.png', // 静态地图
                    imageExtent: extent          //映射到地图的范围
                })
            }));
        </script>

    然后,刷新页面,你会看到如下界面

     由于,签了保密协议,所以我的一下厂区的底图无法截图出来,你可以跟换ol.source.ImageStatic 中的url进行验证

  • 相关阅读:
    如何说明白代码评审
    面试感悟----一名3年工作经验的程序员应该具备的技能(转载自@五月的仓颉)
    根据ip地址从第三方接口获取详细的地理位置
    linux安装telnet遇到的问题
    redis脑图
    数据库相关面试题
    logback系列一:名词解释
    java并发编程系列一、多线程
    logback系列二:logback在项目中的应用
    rocketmq特性(features)
  • 原文地址:https://www.cnblogs.com/ldlx-mars/p/11771503.html
Copyright © 2011-2022 走看看