uniapp引入openlayers

在uniapp中试图引入openlayers前端库,我尝试了特别引入多种方法一直不成功,还以为是包的版本问题或者链接响应问题,结果是因为css样式一直设置错误,要把的样式在设置成100vw/100vh或者固定值才能成功显示。
下面放整体代码:

<template>
	<view class="container">
		<view id="olMap" class="olMap">
			<button>点我一下试试</button>
		</view>
	</view>
</template>

<script module="ol" lang="renderjs">
	//视图层renderjs操作,注意此层中不能uniapp提供相关接口。
	// import '../../static/openlayer/v6.6.1-dist/ol.js'不支持此导入方式否则,打包失败
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		mounted() {
			if (typeof window.ol === 'function') {
				this.initAmap()
			} else {
				const script = document.createElement('script')
				script.src = 'static/js/ol.js' //可以通过此方式导入jquery,echart库
				script.onload = this.initAmap.bind(this)
				document.head.appendChild(script)
			}

		},
		methods: {
			initAmap() {
				this.map = new ol.Map({
					layers: [
					    // 默认方法
						// new ol.layer.Tile({
						// 	source: new ol.source.OSM()
						// })
						
						// redis服务器
						// new ol.layer.Tile({
						// 	source: new ol.source.TileWMS({
						// 		url: 'http://10.133.20.9:38080/geoserver/hz/wms',
						// 		params: {
						// 			'FORMAT': 'image/png',
						// 			tiled: true,
						// 			"STYLES": '',
						// 			"LAYERS": 'hz:geotools_coverage',
						// 			"exceptions": 'application/vnd.ogc.se_inimage',
						// 			tilesOrigin: 105.43304443359374 + "," + 32.101189732320925
						// 		}
						// 	})
						// 	//new ol.source.OSM()
						// })
						
						//天地图
						//矢量底图
						new ol.layer.Tile({
							source: new ol.source.XYZ({
							url:'http://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=053318a29e7ee8be40a0958754cc1827'
							}) 
						}),
						//矢量标记
						new ol.layer.Tile({
							source: new ol.source.XYZ({
							url:'http://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=053318a29e7ee8be40a0958754cc1827'
							}) 
						}),				
					],
					target: "olMap",
					view: new ol.View({
						// center: ol.proj.fromLonLat([0, 0]),
						projection: "EPSG:4326", //使用这个坐标系
						center: [104, 30], //初始坐标
						zoom: 12,
						minZoom: 10,
						maxZoom: 17
					})
				})
			},
		}
	}
</script>


<style lang="scss">
	@import url("@/static/js/ol.css");

	html,
	body {
		height: 100vh;
		width: 100vw
	}


	#olMap {
		position: relative;
		width: 100vw;
		height: 100vh;
	}
</style>

参考:https://blog.csdn.net/weixin_40043172/article/details/126875789;https://www.bilibili.com/video/BV1Su411q7pz/?spm_id_from=333.788.top_right_bar_window_history.content.click

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
uniapp引入openvpn需要进行以下步骤: 1. 安装openvpn客户端库 首先需要从openvpn官网下载openvpn客户端库,并安装到你的设备上。 2. 在uniapp项目中安装插件 在uniapp项目中安装插件`uni-plugin-openvpn`,可以通过npm或yarn进行安装,具体安装方法可以参考官方文档。 3. 配置openvpn 在`manifest.json`文件中配置openvpn插件,例如: ``` "openvpn": { "package": "com.openvpn.client", "versionCode": 110, "versionName": "1.1.0", "permissions": [ "android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.READ_EXTERNAL_STORAGE" ], "configs": [ { "name": "My VPN", "path": "/sdcard/openvpn/myvpn.ovpn", "username": "myusername", "password": "mypassword" } ] } ``` 其中,`package`为openvpn客户端的包名,`versionCode`和`versionName`为版本信息,`permissions`为需要的权限,`configs`为配置信息,包括VPN名称、配置文件路径、用户名和密码等。 4. 使用openvpn 在需要使用openvpn的页面中,使用`uni.openvpn`进行连接,例如: ``` uni.openvpn.connect({ name: 'My VPN', success: function () { console.log('Connected'); }, fail: function (error) { console.log('Error: ' + error); } }); ``` 其中,`name`为配置文件中的VPN名称,`success`和`fail`为连接成功和连接失败的回调函数。 需要注意的是,openvpn插件目前只支持Android平台,iOS平台的支持正在开发中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值