- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Leaflet 中的示例中(对于非地理图像),他们设置“边界”。我试图了解他们如何计算这些值
var bounds = [[-26.5,-25], [1021.5,1023]];
原点在左下角,y 向上增加/x 向右增加。负数怎么会出现在这里?此外,经过实验,我发现如果为边界指定不同的坐标,实际像素坐标会发生变化。我有一个我想使用的自定义 png map ,但由于这个原因我无法继续。
最佳答案
哦,你是说这张图片:
如果您使用图像编辑器打开完整文件(位于 https://github.com/Leaflet/Leaflet/blob/v1.4.0/docs/examples/crs-simple/uqm_map_full.png ),您会看到它的大小为 2315x2315 像素。现在,表示 (0,0) 坐标的像素不在图像的一 Angular ,而是距图像左下角 56 个像素:
同样,(1000, 1000) 坐标距图像右上角约 48 像素:
因此,如果我们测量网格 Angular 的像素坐标:
Game coordinate (0, 0) → Pixel coordinate (59, 56)
Game coordinate (1000, 1000) → Pixel coordinate (2264, 2267)
这里的问题是找到图像的边界(以游戏坐标测量)。或者,换句话说:
Pixel coordinate (0, 0) → Game coordinate (?, ?)
Pixel coordinate (2315, 2315) → Game coordinate (?, ?)
我们知道像素与游戏坐标的比率是恒定的,我们知道图像大小和到坐标网格的距离,所以我们可以推断出东西:
1000 horizontal game units = image width - left margin - right margin
或
1000 horizontal game units = 2315px - 56px - 48px = 2213px
因此像素/游戏单元比率为
2213px / 1000 game units = 2.213 px/unit
因此左边距是...
~59px = ~59px / (2.213px/unit) ~= 26.66 game units
...因此图像的左边缘在 ~ -26.66 个游戏单元处。右边距的理想...
~51px = ~51px / (2.213px/unit) = ~23.04 game units
...因此图像的右边缘在 ~1023.04 个游戏单元
重复上面和底部的边距,我们可以填满所有数字:
Pixel coordinate (0, 0) → Game coordinate (-26.66, -25)
Pixel coordinate (2315, 2315) → Game coordinate (1023.04, 1025)
为什么这些数字与示例中的数字不完全匹配?因为我在编写 Leaflet 教程时可能使用了不同的像素进行测量。不过,错误可以忽略不计。
让我评论一下该教程中的一句话:
One common mistake when using CRS.Simple is assuming that the map units equal image pixels. In this case, the map covers 1000x1000 units, but the image is 2315x2315 pixels big. Different cases will call for one pixel = one map unit, or 64 pixels = one map unit, or anything. Think in map units in a grid, and then add your layers (
L.ImageOverlays
,L.Markers
and so on) accordingly.
如果您有自己的游戏 map (或其他任何东西),您应该问问自己:(0,0) 坐标在哪里?我要使用的单位中的图像边缘坐标是多少?
关于javascript - Leaflet CRS.Simple 教程中的边界是如何计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54816178/
尽管有很多 CRS 预测等帖子,但我无法阻止我的城镇下沉。 如果我去 Google Maps并输入 -35.016, 117.878奥尔巴尼镇位于旱地(如下图): 如果我在 R 中输入纬度/经度并尝试
我下载了 MODIS .hdf 文件。使用 xarray 加载它,它给了我一个属性 ds.Proj4String == ' +a=6378137.0 +b=6356752.3142451793 +no
我在使用传单 map 插件和简单的 crs 时遇到问题。当我开始玩它时,我使用默认的 CRS 和缩放级别 0-6,它工作正常。但我需要使用像素坐标,而不是地理坐标,所以我切换到 Simple CRS,
您好,我了解 CRS 稀疏矩阵的工作原理,但我有一个问题:如果一行为空(仅填充 0)会发生什么?例如让第5行为空,row_ptr(5)应该包含什么? 最佳答案 行指针值将被重复,即行指针将类似于[1,
我在给定的 CRS 中有一个点的字符串表示形式(即 EPSG:3035),例如“N10160E21266”。我想使用GeoTools解析来创建DirectPosition,或任何其他 X/Y 表示(以
我已经使用自定义 CRS (EPSG:32633) 设置了传单 map 。该 map 通常运行良好,但每当我尝试在移动设备上使用捏合来缩放 map 时它就会卡住。 双指缩放时出现的错误是“未捕获错误:
我不熟悉稀疏矩阵的使用,但现在需要在我的工作中使用它以节省空间。我了解以下矩阵: 10 0 0 0 -2 0 3 9 0 0 0 3 0
我有一些网格数据(二维数组),其中有一些与之关联的地理空间元数据。边界位于具有 WSG84 lon lat 坐标的 jts 多边形中。多边形是一个矩形,但不是轴对齐的(不是边界框)。 我正在尝试创建一
是否有一种简单的方法可以将简单特征(sf 对象)的边界转换为另一个 CRS? 函数的结果 st_bbox()属于 bbox .无法使用 st_transform()将其转换为另一个 CRS。 我正在使
很抱歉为此打扰你,但我可能已经为这个问题生气了 5 个小时,但我没能解决它。 我有一个包含大约 37,000 个条目的数据集。它们每个都有自己的 Lon 和 Lat 坐标值。检查整体值,它们的范围分别
我正在尝试更改 geopandas 数据框的 CRS。目前的 CRS 是: Name: unknown Axis Info [ellipsoidal]: - lon[east]: Longitude
我有一些“道路”作为 sp 对象: class : SpatialLinesDataFrame features : 17360 extent : 490176.4, 56
处理稀疏矩阵时,如何转换Matrix Market format进入 CRS(压缩行存储)? 最佳答案 你看过BeBOP Sparse Matrix Converter了吗?源代码?它链接自您引用的页
我正在使用 Rasterio 在 Python 中读取 jpg 图像及其关联的世界文件,如下所示: import rasterio with rasterio.open('/path/to/file.
我正在尝试安装 SCIP 优化套件版本 3.1.0 http://scip.zib.de/download.php?fname=scipoptsuite-3.1.0.tgz 通过在 scipoptsu
我遇到了一个奇怪的问题:当使用 GeoPandas(在 Jupyter Notebooks 中)时,.crs 数据在我的第一个笔记本中工作正常,然后在我的第二个笔记本中丢失。 只要看看图书馆附带的一张
我尝试实现稀疏矩阵存储格式。维基百科说:this 我需要CRS 算法。但是我无法理解算法到底。我有链接示例中的矩阵 0 0 0 0 5 8 0 0 0 0 3 0 0 6 0 0 和3个数组 A
在 Leaflet 中的示例中(对于非地理图像),他们设置“边界”。我试图了解他们如何计算这些值 var bounds = [[-26.5,-25], [1021.5,1023]]; 原点在左下角,y
给定以下 GeoDataFrame: h=pd.DataFrame({'zip':[19152,19047], 'Lat':[40.058841,40.202162],
尽管我的问题有答案 How to create an accurate buffer of 5 miles around a coordinate in python? ,但我不能代表它。 我有一系列
我是一名优秀的程序员,十分优秀!