OpenLayers 6 学习一:构建第一个地图应用

一、安装OpenLayers

OpenLayers官网:OpenLayers - Get the Code

npm+OpenLayers官网:ol - npm

npm install ol

Vue项目直接安装ol会报错,安装OpenLayers失败,解决办法有两种:

方法一:先把node_modules文件夹删除,待安装OpenLayers后,再npm install安装被删除的依赖。适用于项目刚创建时,没有安装过多的依赖,毕竟依赖过多时,安装所有的依赖也很费时间。

方法二:在一个没有node_modules文件夹的新项目中,安装OpenLayers后,复制dependencies下的ol依赖和node_modules文件夹下的ol文件夹到当前项目中:

  

二、全局引入OpenLayers

 main.js文件全局引入OpenLayers:不知道用什么API,可以学习官方文档

OpenLayers官方API:OpenLayers v6.8.1 API - Index

OpenLayers官方示例:OpenLayers Examples

其实OpenLayers不推荐使用全局引入,可以在用到的页面中导入需要的js文件及变量。

//main.js
/**
 * 按需导入OpenLayers所需内容
 */
import "ol/ol.css";
import olMap from "ol/Map"
import olView from "ol/View"
import olTile from "ol/layer/Tile"
import olOSM from "ol/source/OSM"
import {fromLonLat} from "ol/proj"

let ol = {
	Map: olMap,
	View: olView,
	layer: {
		Tile: olTile,
	},
	source: {
		OSM: olOSM
	},
	proj: {
		fromLonLat: fromLonLat
	}
}
//OpenLayers全局引入方式
Vue.prototype.$ol = ol;

三、构建第一个地图应用

参照官网:OpenLayers - Quick Start

<template>
	<div class="main">
		<div id="map" class="map"></div>
	</div>
</template>

<script>
	export default {
		data() {
			return {

			};
		},
		mounted() {
			this.init()
		},
		methods: {
			init() {
				//引用全局变量
				let ol = this.$ol;
				//官方示例
				let 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>

<style>
	.main{
		height: calc(100vh - 100px);
	}
	.map {
		width: 100%;
		height: 100%;
	}
</style>

效果图:

​​​​​​​

 右下角总是有一个贡献者的属性显示:

 

可以通过修改css属性隐藏掉:

<style>	
	.ol-attribution{
		display: none;
	}
</style>
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值