相关疑难解决方法(0)

如何通过单击Leaflet map获取tile的XYZ坐标

我想请求帮助来处理地图Leaflet上可能使用的非标准坐标.

我想使用Leaflet用我自己的tile生成器显示自定义地图.通过脚本动态生成平铺,具体取决于计划显示的位置(对脚本的URL请求中的参数{x},{y},{z})地图将可缩放(从0到10),大小在最大变焦范围内~16000*16000个瓷砖,最少16*16个瓷砖)它将显示各种对象,每个对象在一个单独的图块中.每个64*64像素的图块是地图上的对象.对于每个对象(方形图块),我想通过AJAX请求向服务器发送鼠标单击信息.我不想为了优化目标预先加载有关所有对象的所有信息.我的主要问题 - 我无法理解如何正确获取鼠标点击的图块的XYЯ坐标.基本上因为从服务器加载每个tile时绑定到网格{x},{y},{z},所以我想从点击中获取这些{x},{y},{z}映射并发送它们以获取有关该对象的信息的进一步AJAX请求.现在可以将点击点作为Latlng坐标或坐标相对于地图的左上角以像素为单位,我无法引用切片网格.

而且我想知道获得相对于瓷砖的点击坐标的可能性.例如,如果图块的尺寸为64*64,并且单击位于图块的中心,那么如何获得点击[32,32]的相对坐标?因为如果我们知道了瓷砖的{X},{Y},{Z}坐标以及瓷砖内部点击的相对X*和Y*坐标,那么我们就可以做"通用替代坐标网格".

可能这不是问题而且可以轻松解决,但我从未使用任何Maps API,因此我想知道这个问题的答案.

在此先感谢您的帮助!

dictionary tiles leaflet

8
推荐指数
2
解决办法
1万
查看次数

获取地图图块边界框

是否可以获得瓷砖 LngLat 边界框?(如果可能的话还有中心/宽度)

即给定任何图块“id”(例如6/33/24),计算所需的坐标。我非常渴望得到答案,我什至不在乎它是用什么语言写的。


语境

磁贴“id”有 3 个部分:( 6/33/24) z/x/y

zx/y从左/上原点开始进行地板缩放 (0-24) 和图块编号。

当缩放为 1 时,整个地图被分为 4 个相等的图块(如图所示)。每次缩放 ( z) 增加时,每个图块都会细分为 4 个相等的图块(例如,缩放 2 = 16 个图块)。

 _______________________
|          |           |
|  1/0/0   |   1/1/0   |
|          |           |
|__________|___________|
|          |           |
|  1/0/1   |   1/1/1   |
|          |           |
|__________|___________|
Run Code Online (Sandbox Code Playgroud)

为什么?

我想实现客户端标记缓存并将它们绑定到图块似乎是最合理的解决方案。我知道如何获取图块(循环sourceCaches图块或使用几种transform方法),但我不知道如何从图块矩阵或图块 ID 获取 LngLat 数据。

标记缓存的超级基本 JavaScript 概念(用于上下文):

 _______________________
|          |           |
|  1/0/0   |   1/1/0 …
Run Code Online (Sandbox Code Playgroud)

mapbox-gl-js vector-tiles

7
推荐指数
1
解决办法
4099
查看次数

标签 统计

dictionary ×1

leaflet ×1

mapbox-gl-js ×1

tiles ×1

vector-tiles ×1