iClient求点所在瓦片行列号

2024-02-25 09:18

本文主要是介绍iClient求点所在瓦片行列号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:yangjl

前言

前段时间有客户小伙伴问我如何通过坐标点来获取所在瓦片的行列号,在查看网上博客以及资料后解决了小伙伴的需求并写下这篇文章。首先我们需要理解地图比例尺以及分辨率的意义。分辨率在GIS中可以理解为地面分辨率,或者空间分辨率,其意义表示一个像素代表的地面实际距离,它常用于电子设备屏幕上来衡量实际距离,而比例尺是表示图上距离与实际距离之比。

理论部分
1. 分辨率与比例尺转化

它们之间是有方法来对应与转换,我们这里只讨论经纬度下转换,以下为转换式子
Scale=0.0254/DPI/resolution/Math.PI/2/6378137*360;
其中0.0254代表是每英寸0.0254米,DPI一般为96,可以描述为每英寸96个像素点,在iServer中可以对DPI进行设置,6378137为地球半径。如果小伙伴还想了解平面坐标系的转换可以参考https://www.jianshu.com/p/4ddc870f9528

2. 瓦片行列号换算原理

小伙伴如果网上去查找相关原理其实有很多的方法与说明,大概的意思可以理解为首先算出屏幕上的地理坐标点到瓦片切图原点的实际距离L真实,然后算出一个瓦片的实际长度L瓦片真实。然后用L真实除以L瓦片真实。即可得此时的瓦片行列号。
下面我们直接给出瓦片行列号换算公式

X =((x0 - x)/( tileSize*resolution))
Y=((y0 - y)/( tileSize*resolution))
实操部分
1. 发布ugcv5服务

首先利用iDesktop进行地图切片,本次使用的是wg84的经纬度坐标,epsg4326,使用Word示例数据作图,然后切图,切图参数以下,注意块大小以及dpi为我们可用数据
在这里插入图片描述然后使用iserver发布,发布成功后进行对接出图。如何对接出图以及获取出图参数我在这里不再赘述,之前我写的文章中已经详细说明如何对接出图
https://blog.csdn.net/supermapsupport/article/details/103610851
这是成功对接出图的例子。
在这里插入图片描述

1. 计算点所在行列号

现在可用为map对象注册点击事件,获取当前地图的分辨率,以及坐标点位置,
并利用已知的dpi以及当前分辨率通过分辨率比例尺的转换方式得到当前比例尺

 map.on('click',(e)=>{var point = new ol.geom.Point(e.coordinate);var iconStyle = new ol.style.Style({image: new ol.style.Icon(({src: '../img/markerbig_select.png'}))});var feature = new ol.Feature(point);feature.setStyle(iconStyle);var pointSource = new ol.source.Vector({features: [feature],wrapX: false});vectorLayer = new ol.layer.Vector({source: pointSource});map.addLayer(vectorLayer);
var scale2=view.getResolution()/(0.0254/96/Math.PI/2/6378137*360)}

现在坐标原点,当前分辨率,点击点的坐标,瓦片大小都已知,最后通过我们提供的瓦片行列号换算计算方法可得到当前分辨率下点击点所在的瓦片行列号

var col=parseInt((-180 - e.coordinate[0])/( 256*view.getResolution()));
var row=parseInt((83.62359619140626 - e.coordinate[1])/( 256*view.getResolution()));

在这里插入图片描述
最后,我们可用通用iserver当前瓦片地图服务提供的tileImage操作可进行验证
在这里插入图片描述
最后测试与实际情况符合。

总结

通过坐标点来获取当前瓦片的行列号其实不难,通过今天所说的方式得到瓦片行列只是运用的一方面,如果小伙伴感兴趣,可以去尝试自己在当前的地图范围以及比例尺级别下获取所有的瓦片。

这篇关于iClient求点所在瓦片行列号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745048

相关文章

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

MYSQL行列转置方式

《MYSQL行列转置方式》本文介绍了如何使用MySQL和Navicat进行列转行操作,首先,创建了一个名为`grade`的表,并插入多条数据,然后,通过修改查询SQL语句,使用`CASE`和`IF`函... 目录mysql行列转置开始列转行之前的准备下面开始步入正题总结MYSQL行列转置环境准备:mysq

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

【HDU】4975 A simple Gaussian elimination problem. 网络流——行列建边

传送门:【HDU】4975 A simple Gaussian elimination problem. 题目分析:这题和某一场的多校的题目出奇的像啊!重要的是我一开始还以为不可能会出一样的题。。结果迟迟没写啊。。。后来觉得实在想不出什么对策了,虽然觉得给的是0~9很特殊,但是利用不起来,果断还是敲了网络流了。。首先建图很简单,源点向行建边,容量为行和,列向汇点建边,容量为列和,然后所有的

Python csv文件 追加行列

1.csv文件追加行: #! /usr/bin/env python# -*- coding:utf-8 -*-import sysimport csvimport osinput_path = r'D:\opsdailycheckfile\input_file\test\\' # campaign 基础文件固定位置input_csv = open(input_path + "fdt

如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row

在创建button的时候可以把indexpath的值给button.tag。点击的时候响应sender.tag. 在自定义UITableViewCell中创建了一个按钮。 想在点击该按钮时知道该按钮所在的cell在TableView中的行数。就是cell的 indexPath.row 两种方法都很好。 -(IBAction):(id)sender {

简易版谷歌系瓦片下载(天地图为例)

问题来源 项目需要瓦片作为离线底图,所以便写个简易的方法。大神们可以在这个基础上改进。 代码 package tile;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.

图形语言传输格式glTF和三维瓦片数据3Dtiles(b3dm、pnts)学习

文章目录 3DTilesb3dm一、glTF1.glTF 3D模型格式有两种2.glTF 场景描述结构3.glTF的JSON结构 二、 3DTiles 原文 工具+资料 格式详解 格式详解! 3D Tiles 是一种开源的、优化的文件格式,支持逐级细节(LOD)和空间索引,使得数据可以根据视点距离动态加载和卸载。 3DTiles由tileset.json和tile组成,其中til

linux上查找某应用所在的绝对路径

linux上查找某应用所在的绝对路径 1、已知应用名称 找到应用的进程号 例:查找nginx的进程号 ps -ef | grep nginx或者ps -aux | grep nginx 2、通过端口号找进程号 lsof -i:80 3、通过进程号找到所在目录,Linux在启动一个进程时,系统会在/proc目录下创建一个以PID命名的目录,在该目录下会有我们的进程信息:

演示:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图(完全独立不依赖第三方库)

一、目的:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图 二、预览 三、环境 VS2022,Net7,DrawingVisual,谷歌地图瓦片 四、主要功能 地图缩放,平移,定位 真实经纬度  显示瓦片信息 显示真实经纬度和经纬线 省市县数据定位 省市县镇级别连线 鹰眼图(点击定位,滚动缩放,拖动定位)