Vue + OpenLayers Quick Start Tutorial

Vue + OpenLayers Quick Start Tutorial

Openlayers is a modular, high-performance and feature-rich JavaScript package for WebGIS clients. It is used to display and interact with maps and spatial data, and has a flexible extension mechanism.

In short, using Openlayers (hereinafter referred to as ol) can flexibly and freely display various maps and spatial data. And this framework is completely free and open source.

Preface

This article records the introduction to using OpenLayers in Vue, uses OpenLayers to create a map component, and uses the map provided by OpenLayers and local images as maps.

Overview
OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles, vector data and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the 2-clause BSD License (also known as the FreeBSD).

Official address: https://openlayers.org/

1. Install the OpenLayers library

cnpm install ol

2. Create OpenLayers component in Vue

Rendering

insert image description here

Code

	<template>
	  <div id="map" class="map"></div>
	</template>
	
	<script>
	import "ol/ol.css";
	import Map from "ol/Map";
	import OSM from "ol/source/OSM";
	import TileLayer from "ol/layer/Tile";
	import View from "ol/View";
	
	export default {
	  mounted() {
	    this.initMap();
	  },
	  methods: {
	    initMap() {
	      new Map({
	        layers:
	          new TileLayer({
	            source: new OSM()
	          })
	        ],
	        target: "map",
	        view: new View({
	          center: [0, 0],
	          zoom: 2
	        })
	      });
	
	      console.log("init finished");
	    }
	  }
	};
	</script>
	<style>
	.map {
	  width: 100%;
	  height: 400px;
	}
	</style>

3. OpenLayers uses local images as maps

Effect picture:

Code

	<template>
	  <div>
	    <div id="map" class="map"></div>
	  </div>
	</template>
	
	<script>
	import "ol/ol.css";
	import ImageLayer from "ol/layer/Image";
	import Map from "ol/Map";
	import Projection from "ol/proj/Projection";
	import Static from "ol/source/ImageStatic";
	import View from "ol/View";
	import { getCenter } from "ol/extent";
	
	let extent = [0, 0, 338, 600];
	let projection = new Projection({
	  code: "xkcd-image",
	  units: "pixels",
	  extent: extent
	});
	
	export default {
	  data() {
	    return {
	      map: {}
	    };
	  },
	
	  mounted() {
	    this.initMap();
	  },
	
	  methods: {
	    initMap() {
	      this.map = new Map({
	        layers:
	          new ImageLayer({
	            source: new Static({
	              attributions: '© <a href="http://xkcd.com/license.html" rel="external nofollow" >xkcd</a>',
	              url: "http://localhost:8080/img/123.5cba1af6.jpg",
	              projection: projection,
	              imageExtent: extent
	            })
	          })
	        ],
	        target: "map",
	        view: new View({
	          projection: projection,
	          center: getCenter(extent),
	          zoom: 1,
	          maxZoom: 4,
	          minZoom: 1
	        })
	      });
	    }
	  }
	};
	</script>
	<style>
	.map {
	  width: 100%;
	  height: 400px;
	}
	</style>

This is the end of this article about the Vue + OpenLayers quick start learning tutorial. For more Vue OpenLayers introductory content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Vue uses openlayers to load Tiandi Map and Amap
  • Vue+Openlayers realizes real-time coordinate point display
  • Vue+openlayers draws provincial and municipal boundaries
  • Vue uses Tiandi Map and openlayers to realize the overlay display of multiple base maps

<<:  Use of Linux ln command

>>:  Some "pitfalls" of MySQL database upgrade

Recommend

js implements axios limit request queue

Table of contents The background is: What will ha...

How to publish static resources in nginx

step Place the prepared static resource files in ...

IIS 7.5 uses URL Rewrite module to achieve web page redirection

We all know that Apache can easily set rewrites f...

Issues installing Python3 and Pip in ubuntu in Docker

text 1) Download the Ubuntu image docker pull ubu...

Five ways to implement inheritance in js

Borrowing Constructors The basic idea of ​​this t...

Detailed tutorial on installing Anaconda3 on Ubuntu 18.04

Anaconda refers to an open source Python distribu...

Detailed explanation of how a SQL statement is executed in MySQL

Overview I have recently started learning MySQL r...

10 ways to view compressed file contents in Linux (summary)

Generally speaking, when we view the contents of ...

How to set an alias for a custom path in Vue

How to configure custom path aliases in Vue In ou...

IE6 web page creation reference IE6 default style

This is not actually an official document of IE. I...

Comprehensive understanding of Node event loop

Table of contents Node Event Loop Event loop diag...

Write a dynamic clock on a web page in HTML

Use HTML to write a dynamic web clock. The code i...