如何将bing maps quadkey转换为mercator坐标

时间:2011-04-27 14:04:09

标签: algorithm gis

如何将bing maps四键(例如“03200320023”)转换为mercator虚拟地球(epsg 3857)坐标系中的坐标?

我有一个转换为纬度经度坐标的算法(例如上面的四键变为“-84.19921875,33.7243385314941,-84.0234375,33.8704147338867”)。然后我可以从纬度经度转换为墨卡托坐标,但是它的处理能力太贵了。

鉴于以上四核,我正在寻找的墨卡托虚拟地球结果是:“ - 9373014,4011415,-9353446,4030983”

更多背景信息。我正在使用bing贴图并使用fastcgi添加我使用IIS中的mapserver服务的图层。我基本上想要将256x256磁贴的bing maps quadkey请求转换为epsg 3857中的mapserver wms查询。它适用于epsg 4326(wgs84)以及当我从wgs84转换为epsg 3857时。但是性能不是我想要的进入两阶段转换。

我还问了gis.stackexchange.com上已经回答的问题

1 个答案:

答案 0 :(得分:1)

为了完整性,这里是我用来解决这个问题的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