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>
相关推荐
小徐_233311 小时前
uni-app vue3 也能使用 Echarts?Wot Starter 是这样做的!
前端·uni-app·echarts
iOS阿玮15 小时前
永远不要站在用户的对立面,挑战大众的公知。
uni-app·app·apple
xw516 小时前
uni-app中v-if使用”异常”
前端·uni-app
!win !16 小时前
uni-app中v-if使用”异常”
前端·uni-app
2501_9159184119 小时前
iOS 上架全流程指南 iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传 ipa 与审核实战经验分享
android·ios·小程序·uni-app·cocoa·iphone·webview
00后程序员张21 小时前
iOS App 混淆与加固对比 源码混淆与ipa文件混淆的区别、iOS代码保护与应用安全场景最佳实践
android·安全·ios·小程序·uni-app·iphone·webview
00后程序员张1 天前
详细解析苹果iOS应用上架到App Store的完整步骤与指南
android·ios·小程序·https·uni-app·iphone·webview
海绵宝宝不喜欢侬1 天前
uniapp-微信小程序分享功能-onShareAppMessage
微信小程序·小程序·uni-app
2501_915106321 天前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
xkxnq1 天前
Uniapp崩溃监控体系构建:内存泄漏三维定位法(堆栈/资源/线程)
uni-app