如何将 Bing map 四键(例如“03200320023”)转换为墨卡托虚拟地球 (epsg 3857) 坐标系中的坐标?
我有一个算法可以转换为经纬度坐标(例如,上面的四键变成“-84.19921875,33.7243385314941,-84.0234375,33.8704147338867”)。然后我可以将纬度经度转换为墨卡托坐标,但这在处理能力方面闻起来太贵了。
我正在寻找的墨卡托虚拟地球结果是:“-9373014,4011415,-9353446,4030983”
更多上下文。我正在使用 bing map 并使用 fastcgi 从 IIS 使用 mapserver 添加我正在服务的图层。我基本上想将 256x256 瓦片的 bing map 四键请求转换为 epsg 3857 中的 mapserver wms 查询。它在 epsg 4326 (wgs84) 中工作,当我从 wgs84 转换为 epsg 3857 时也能工作。但是性能不是我想要的,因为到两阶段转换。
我还在 gis.stackexchange.com 上问过这个问题现在已经回答了
最佳答案
为了完整性,这里是我用来解决这个问题的 F# 代码。
let quadKeyToVE key =
let offset,x,y =
key
|> Seq.fold (fun (offset,x,y) ch ->
let x',y' =
match ch with
| '0' -> x-offset,y+offset
| '1' -> x+offset,y+offset
| '2' -> x-offset,y-offset
| '3' -> x+offset,y-offset
| _ -> failwith "Invalid quadkey"
offset/2.0,x',y'
) (InitialOffset,0.0,0.0)
let offset = offset * 2.0
let west = x - offset
let north = y + offset
let east = x + offset
let south = y - offset
west,south,east,north
关于algorithm - 如何将必应 map 四键转换为墨卡托坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805394/