2013-03-19 41 views
3

我正在嘗試製作包含英國地圖和所有〜650選區的地圖。我按照這個優秀教程http://bost.ocks.org/mike/map/繪製了地圖,效果很好。然而,我可以找到的選區的唯一來源是軍械測量局(自然地球有縣但不是選區)。 問題是操作系統選區文件不包含它們相同類型的座標(您可能會知道,我不是GIS專家),它們使用橫向墨卡託投影。下面是我想將來自數據的.prj文件的屬性:使用D3更改可視化的形狀文件投影

PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",-100000],PARAMETER["Central_Meridian",-2],PARAMETER["Scale_Factor",0.999601272],PARAMETER["Latitude_Of_Origin",49],UNIT["Meter",1]] 

我的問題是:我怎麼能在D3轉換該投影?我已經安裝了ogr2ogr和TopJson,但不知道這些是否可以實現,因爲我沒有足夠的基礎知識,所以無法找到任何信息。

TIA

+1

我幾天前和你一樣,正確的工具確實是ogr2ogr。我發送了這段代碼'ogr2ogr output.shp input.shp -t_srs「+ proj = longlat + ellps = WGS84 + no_defs + towgs84 = 0,0,0」'但我不知道這是否適用於您的情況。希望有人能想出更好的答案。如果沒有,請嘗試http://gis.stackexchange.com – Duopixel 2013-03-20 00:48:55

+0

非常感謝,工作。您是否願意添加回答 – toby 2013-03-20 19:55:35

+0

這更像是一個巧合而不是答案,我會在可能的時候添加一個賞金(48小時),這樣才能得到正確的解釋,因爲我對這個答案也很好奇。 – Duopixel 2013-03-21 01:53:24

回答

8

空間數據在給定的座標系中指定。該座標系用於將座標投影到空間中的特定點,例如地圖畫布。字面上有數百個不同的地理數據座標系統。其中一個原因是,地球在預測方面表現不佳 - 這不是一個完美的領域,不同的座標系統傾向於在不同的地方效果最好(「最佳工作」是指一旦你將一個點投射到地球表面上)。你可以找到更多的信息on wikipedia

定義一個座標系和投影並不一定很難或很多工作,但它需要完成才能使用。這就是你不能使用你的數據的原因 - 它使用了D3不知道的座標系(英國國家格網)。所以你的選擇是將它轉換爲one that D3 does know about,或者在D3中實現你的座標系。前者幾乎總是比較容易的方法。

命令ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0"轉換你的輸入shape文件(地理數據的文件格式)input.shp到通用橫軸墨卡託投影(UTM)WGS84格式(這是t_srs字符串意味着什麼,更on wikipedia)在output.shp,無論座標系統的使用在輸入中。

給出t_srs的目標座標系參數可以是一個明確的定義(如上例),對公知座標系的引用或包含該定義的文件。例如,可以找到一個知名的座標系列表here