因为项目须要,须要是使用openlayers框架,因而开始安利一波openlayers,能够点击 https://openlayers.org/ 进入他的官网下载相关资源和案例javascript
学习的过程老是慢慢来的,先就不在vue react等一下js框架下使用了,直接上html,哈哈css
首先去他官网里,https://openlayers.org/en/latest/doc/quickstart.html 进入快速开始界面,就是所谓的hello world html
而后开始敲代码,在本地新建一个index.htmlvue
<!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连接有点卡,能够先下载对应的资源本地引入java
接着打开这个页面,你会看到以下界面react
到此你就成功的创建了一个map框架
注意:一个map里必不可少的参数是target--dom节点,view视图, layers图层dom
接下来咱们渲染一下自定义的静态图片学习
使用的是openlayers的 ol.layer.Image, 话很少说直接上代码,哈哈ui
将上面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进行验证