如何基于位置和crs计算arcgis地图的地砖坐标

如何基于位置和crs计算arcgis地图的地砖坐标,gis,geospatial,arcgis,proj,Gis,Geospatial,Arcgis,Proj,我正在研究一种基于给定位置(纬度、经度)和缩放级别下载地图分幅的解决方案 跟随 关键概念是将(纬度、经度)转换为平铺引用,例如javascript代码: 函数long2tileX(lon,zoom){return(Math.floor((lon+180)/360*Math.pow(2,zoom));} 函数lat2tileY(lat,zoom){返回(Math.floor((1-Math.log(Math.tan(lat*Math.PI/180)+1/Math.cos(lat*Math.PI/1

我正在研究一种基于给定位置(纬度、经度)和缩放级别下载地图分幅的解决方案

跟随

关键概念是将(纬度、经度)转换为平铺引用,例如javascript代码:

函数long2tileX(lon,zoom){return(Math.floor((lon+180)/360*Math.pow(2,zoom));}

函数lat2tileY(lat,zoom){返回(Math.floor((1-Math.log(Math.tan(lat*Math.PI/180)+1/Math.cos(lat*Math.PI/180))/Math.PI)/2*Math.pow(2,zoom));}

对于示例位置(63.433772,10.393456)和缩放级别(17),此公式返回(69320,35421),这正是获得平铺所需的:

现在我正在努力用ArcGIS地图实现同样的目标。 提供了以下CRS对象:

{
“名称”:“地理缓存基础”,
“Crs”:{
“决议”:[
21674.7100160867,
10837.355008043351,
5418.6775040216753,
2709.3387520108377,
1354.6693760054188,
677.33468800270941,
338.66734400135471,
169.33367200067735,
84.666836000338677,
42.333418000169338,
21.166709000084669,
10.583354500042335,
5.2916772500211673,
2.6458386250105836,
1.3229193125052918,
0.66145965625264591,
0.33072982812632296,
0.16536491406316148
],
“OriginX”:-2500000.0,
“原创”:9045984.0,
“Srid”:“EPSG:32633”,
“定义”:“+proj=utm+区域=33+ellps=WGS84+基准=WGS84+单位=m+无定义”
},
“归属”:“Kartverket,Geovekst og kommuner-Geodata AS”,
“地图提供者”:“arcgis”
}

尝试使用proj4并用“Definition”字段值定义EPSG:32633,然后进行投影,但这并没有让我接近计算 各自的瓷砖坐标,我通过实验确定为(4733365439)


如果您能给我一些提示,告诉我可以应用什么数学公式来遵循相同的场景并得到准确的结果,我将不胜感激。

您找到问题的解决方案了吗?我遇到了同样的问题。我想出的解决办法是使用内置的传单方法。如果使用地理参照(CRS)创建新的地图实例,则可以使用
mapInstance.options.CRS.latLngToPoint
方法将纬度转换为点。然后使用这些点,您还可以使用传单的
newbounds()
方法创建边界。然后,使用这些边界,您将以与OSM相同的方式进行注册