uniapp 整合 OpenLayer3

  1. 安装openLayer插件

命令行:npm install ol

  1. 安装sass插件

命令行:npm install -D sass

使用方法:

***

***

<style scoped lang="scss">

</style>

  1. 安装ElementPlus

命令行:npm install element-plus --save

引用方法:

实际代码:

复制代码
// #ifndef VUE3

import Vue from 'vue'

import App from './App'



Vue.config.productionTip = false



App.mpType = 'app'



const app = new Vue({

...App

})

app.$mount()

// #endif



// #ifdef VUE3

import {

createSSRApp

} from 'vue'

import App from './App.vue'

import ElementPlus from 'element-plus'

import 'element-plus/dist/index.css'

export function createApp() {

const app = createSSRApp(App)

app.use(ElementPlus)

return {

app

}

}

// #endif

4、ol代码(必须使用renderjs否则无法显示地图)

复制代码
<template>
	<view class="map" id="map"></view>
</template>

<script setup module="ol" lang="renderjs">
//import 'ol/ol.css'// 真机测试时要注释掉该引用,否则报错
import { Map, View } from 'ol'
import ollayerTile from 'ol/layer/Tile.js'
import olsourceOSM from 'ol/source/OSM.js'
import {get as getProjection} from 'ol/proj.js';
import TileLayer from 'ol/layer/Tile.js'
import XYZ from 'ol/source/XYZ.js'
import { ScaleLine, defaults as defaultControls, MousePosition } from 'ol/control.js'
import { transform } from 'ol/proj.js'

	export default {
	    data () {
	        return {
	            map:null,
	            view:null
	        }
	    },
	    mounted(){
	       this.initMap()
	    },
		methods:{
			// 初始化天地图
			initMap(){
				let that = this
				//天地图影像
				var tdtYX = new TileLayer({
				  source: new XYZ({
				    url: 'http://t2.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=cef191b507ff5cb698811cd8a9b11ca0',
				    projection: 'EPSG:3857',
				    crossOrigin: '*',
				  }),
				})
				//天地图标注
				var tdtBZ = new TileLayer({
				  source: new XYZ({
				    url: 'http://t2.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cef191b507ff5cb698811cd8a9b11ca0',
				    projection: 'EPSG:3857',
				  }),
				})
				
				//天地图电子地图
				var tdtDZ = new TileLayer({
				  source: new XYZ({
				    url: 'http://t2.tianditu.gov.cn/DataServer?T=vec_w &x={x}&y={y}&l={z}&tk=cef191b507ff5cb698811cd8a9b11ca0',
				    projection: 'EPSG:3857',
				  }),
				})
				
				this.map = new Map({
				  controls: defaultControls({
				    attribution: false,
				    zoom: false,
				    rotate: false,
				  }),
				  target: 'map',
				  layers: [tdtDZ,tdtBZ],//[tdtYX, tdtBZ],
				  view: new View({
				    projection: 'EPSG:3857',
				    center: transform([125.33,43.90], 'EPSG:4326', 'EPSG:3857'),
				    // center: [125.33,43.90],
				    zoom: 10,
				    maxZoom: 18, //最大缩放级别
				  }),
				  
				})
			}
		}
	}
</script>

<style scoped lang="scss">
	
	/*去除顶部导航栏*/
	*{margin:0;padding:0}
	.map{
	  width:100vw;
	  height: 100vh;
	  position: relative;
	  z-index: 1; 
	}
	
</style>
相关推荐
Bug从此不上门3 小时前
【无标题】
前端·javascript·uni-app·vue
耶啵奶膘6 小时前
uniapp+vue2解构赋值和直接赋值的优缺点
uni-app
疯狂的沙粒7 小时前
uni-app 项目支持 vue 3.0 详解及版本升级方案?
前端·vue.js·uni-app
Jiaberrr7 小时前
uniapp Vue2 获取电量的独家方法:绕过官方插件限制
前端·javascript·uni-app·plus·电量
^Rocky8 小时前
uniapp 对接腾讯云IM群公告功能
uni-app·腾讯云
段旭涛8 小时前
uniapp 设置手机不息屏
前端·uni-app
疯狂的沙粒11 小时前
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
前端·uni-app·html
狼性书生1 天前
uniapp实现的简约美观的星级评分组件
前端·uni-app·vue·组件
Jiaberrr1 天前
uniapp 安卓 APP 后台持续运行(保活)的尝试办法
android·前端·javascript·uni-app·app·保活
不老刘1 天前
uniapp+vue3实现CK通信协议(基于jjc-tcpTools)
前端·javascript·uni-app