IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> SuperMap iClient for OpenLayers如何为地图设置自定义投影参数 -> 正文阅读

[移动开发]SuperMap iClient for OpenLayers如何为地图设置自定义投影参数

作者:Carlo

背景:SuperMap iClient for OpenLayers 通过设置 map 中 view 属性的 projection 参数来支持多投影。例如:

var map = new ol.Map({
    view: new ol.View({
        projection: 'EPSG:4326'
    });
});

projection 参数除了支持 EPSG code 字符串之外,还支持自定义投影参数。那么该如何正确使用自定义投影参数呢?接下来我将为大家做详细介绍。

首先我们需要了解ol.proj.Projection 类设置自定义投影参数,详细介绍可以查看源生api文档:https://openlayers.org/en/v6.4.3/apidoc/module-ol_proj_Projection-Projection.html

  • 步骤一:有关各种投影的参数定义,可参考https://epsg.io/或者http://spatialreference.org;如果已有定义,可搜索并查看其投影参数,例如 EPSG:32625,其投影参数为 https://spatialreference.org/ref/epsg/32625/proj4/

  • 步骤二:拿到resolutions值,通过iserver以classic预览,在F12控制台打印layer.resolutions
    在这里插入图片描述

  • 步骤三:引入proj4的包,从proj4的下载地址下载对应版本(https://trac.osgeo.org/proj4js/wiki/Download),然后从下载的包中的dist/文件夹中手动获取proj4.js文件,或者直接使用iclient包里自带的文件。

<script type="text/javascript" include='proj4' src="../../dist/openlayers/include-openlayers.js"></script>
  • 完整代码如下
 <!--********************************************************************
* Copyright 2000 - 2022 SuperMap Software Co.Ltd. All rights reserved.
*********************************************************************-->
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_tiledMapLayer3857"></title>
    <script type="text/javascript" src="../js/include-web.js"></script>
    <script type="text/javascript" src="../../dist/ol/include-ol.js"></script>
    <script type="text/javascript" include='proj4' src="../../dist/openlayers/include-openlayers.js"></script>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%; position: absolute;top: 0;">
<div id="map" style="width: 100%;height:100%"></div>
<script type="text/javascript">
		var url ="http://localhost:8090/iserver/services/map-deijia/rest/maps/mian32625";
    	//自定义投影参数
    	var swissProjection = new ol.proj.Projection({
    	    code: 'EPSG:32625',
			// extent用于确定缩放级别
			//投影的extent可以参考https://epsg.io/
    	    extent: [-341.39 , -613.84,944.12 , 1010.27],
    	    units: 'm'
			
    	});
		//在iserver中以classic的方式预览拿到layer.resolutions
		var resolutions=[6.3442065385445705, 3.1721032692722853, 1.5860516346361426, 0.7930258173180713, 0.39651290865903566, 0.19825645432951783, 0.09912822716475891, 0.04956411358237946, 0.02478205679118973, 0.012391028395594864, 0.006195514197797432, 0.003097757098898716, 0.001548878549449358, 0.000774439274724679, 0.0003872196373623395, 0.00019360981868116975];
		ol.proj.addProjection(swissProjection);
    	var map = new ol.Map({
			target: 'map',
    	    view: new ol.View({
    	        center:[255.72 , 540.35],
				projection: swissProjection,
				resolutions:resolutions,
				zoom:0
    	    })
    	});  
        
        var layer = new ol.layer.Tile({
           source: new ol.source.TileSuperMapRest({
                url: url,
                wrapX: true,
				//设置瓦片网格对象
				tileGrid: new ol.tilegrid.TileGrid({
										extent:  [-341.39 , -613.84,944.12 , 1010.27],
										resolutions: resolutions
										}),
				
            }),
            projection:swissProjection
        });
		console.log('ss')
        map.addLayer(layer);
</script>
</body>
</html>
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:02:43  更:2022-05-10 12:03:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:50:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码