首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从WGS84转换为EPSG:27700个栅格切片,无需绘制地图

从WGS84转换为EPSG:27700个栅格切片,无需绘制地图
EN

Stack Overflow用户
提问于 2020-11-30 18:47:47
回答 1查看 267关注 0票数 0

使用操作系统数据中心- https://labs.os.uk/public/os-data-hub-examples/os-maps-api/zxy-27700-basic-map中的此示例

我可以得到地图上显示的瓦片列表,我想在不绘制地图的情况下获得瓦片的坐标。

从WGS84 (经纬度)中的一个点开始,我可以使用Proj4js将其转换为EPSG:27700

代码语言:javascript
复制
var source = new proj4.Proj('EPSG:4326');

proj4.defs("EPSG:27700","+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs");

var dest = new proj4.Proj('EPSG:27700');

var coords=proj4.transform(source, dest, [X,Y]);

然后我需要将其转换为栅格瓦片的坐标,这是在leaflet示例中使用以下代码完成的:

代码语言:javascript
复制
var crs = new L.Proj.CRS('EPSG:27700', '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs', {
    resolutions: [ 896.0, 448.0, 224.0, 112.0, 56.0, 28.0, 14.0, 7.0, 3.5, 1.75 ],
    origin: [ -238375.0, 1376256.0 ]
});

如何重复此步骤以生成平铺坐标,而不必绘制小叶地图?

我最终想使用坐标从OS Data Hub中抓取并保存一个磁贴,格式如下:

https://api.os.uk/maps/raster/v1/zxy/layer/%7Bz%7D/%7Bx%7D/%7By%7D.png?key=

EN

回答 1

Stack Overflow用户

发布于 2021-04-11 22:57:49

使用使用proj4计算的EPSG:27700 coords,以及定义中使用的缩放级别resolutions (以每像素米为单位)和切片网格origin坐标,您可以基于标准切片大小256像素计算任何缩放级别{z}{y}https://api.os.uk/maps/raster/v1/zxy/layer/{z}/{x}/{y}.png?key=值,如下所示

代码语言:javascript
复制
x = Math.floor((coords[0] - origin[0]) / (resolutions[z] * 256));

y = Math.floor((origin[1] - coords[1]) / (resolutions[z] * 256));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65072099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档