700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > openlayers学习——1 openlayers加载天地图

openlayers学习——1 openlayers加载天地图

时间:2019-09-19 14:39:47

相关推荐

openlayers学习——1 openlayers加载天地图

openlayers加载天地图

前言:基于Vue,学习openlayers,根据官网demo,记录常用功能写法。本人不是专业GIS开发,只是记录,方便后续查找。

参考资料:

openlayers官网:/

geojson下载网站:/portal/school/atlas/area_selector

地图坐标拾取网站:https://api./lbsapi/getpoint/index.html

openlayers核心:Map对象、View视图、Layer图层、Source来源、Feature特征等

<template><!-- 承载地图的容器,注意宽高一定要有,否则不显示 (后面将该文件封装为组件,以便调用) --><div class="base-map" id="base-map" /></template>

<script>import Map from 'ol/Map'import View from 'ol/View'import {defaults as Defaults } from 'ol/control.js'import TileLayer from 'ol/layer/Tile'import XYZ from 'ol/source/XYZ'export default {name: 'BaseMap',data () {return {// 地图实例对象map: null}},mounted () {// 窗口拖拉,更新地图大小window.addEventListener('resize', () => {if (this.map) {this.map.updateSize()}})this.$nextTick(() => {this.initMap()})},methods: {// 加载地图initMap () {// T=vec_c表示请求的是路网数据,x 表示切片的 x 轴坐标,y 表示切片的y轴坐标,z表示切片所在的缩放级别。// 使用 ol.source.XYZ 加载切片,并将获取的数据初始化一个切片图层 ol.layer.Tile:// 天地图底图var source = new XYZ({url: '/DataServer?T=vec_w&tk=b9031f80391e6b65bd1dd80dcde1b097&x={x}&y={y}&l={z}'})var tileLayer = new TileLayer({title: '天地图',source: source})// 标注图层(就是我们所看见的行政区名称,道路)var sourceMark = new XYZ({url: '/DataServer?T=cva_w&tk=b9031f80391e6b65bd1dd80dcde1b097&x={x}&y={y}&l={z}'})var tileMark = new TileLayer({title: '标注图层',source: sourceMark})// 创建地图对象this.map = new Map({target: 'base-map', // 地图容器 对应idlayers: [tileLayer, tileMark], // 图层view: new View({// 视图projection: 'EPSG:4326', // 坐标系// 初始化地图中心 可以去地图坐标拾取网站获取想要的坐标center: [118.339408, 32.261271],// 缩放zoom: 12,// 最大缩放maxZoom: 18,// 最小缩放minZoom: 1}),// 地图自带控件,这里我们不需要,后续自己做类似功能controls: new Defaults({zoom: false,rotate: false})})// 将地图对象抛出去this.$emit('getMap', this.map)}}}</script>

<style scoped>.base-map {width: 100%;height: 100%;z-index: -1;}</style>

包版本

若加载不成功,请自行申请天地图key,天地图官网:https://www./

加载成功效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。