2016-09-02 23 views
1

是否有可能通過使用Postcodes或Northings和Eastings座標來繪製地圖座標。地圖是否可以從某處免費獲取?因爲似乎只有美國地圖默認附帶SSRS,但沒有可用於英國的地圖。通過郵政編碼映射報表服務

回答

2

您可以免費從Ordnance Survey和北愛爾蘭OpenDataNI下載英國的ESRI shapefile文件。爲了您的需要,我會推薦Boundary-Line選項來獲得英國的各個行政區域。這些來與名稱等,是太棒了。

對於郵政編碼,我不認爲SSRS可以直接映射它們。您需要投資於郵政局的Postcode Address File,這需要定期獲得許可證費用,但每6個月更新一次,或者您可以依靠免費資源(包括北愛爾蘭)從Doogal等網站獲得英國郵政編碼非常全面的信息,他們的地理定位數據(緯度/長,EAS /也不等)和其他元數據,如該病房它們方式支付。

來自這兩個資源,你可以很容易地建立一個郵政編碼查詢表,將保留您LAT並在您的查詢返回spatial數據字段。這是提供SSRS映射信息的最簡單方法,當您使用正確的geography數據類型時,它「正常工作」。

要在spatial列添加爲你的郵編表:

ALTER TABLE [dbo].[Postcodes] 
ADD [SpatialPoint] GEOGRAPHY 
GO 

-- This query may take a loooooong time depending on your set up, 
-- though you only have to run once across the whole dataset. 
-- Obviously you will need to run again for any new postcodes. 
UPDATE [dbo].[Postcodes] 
SET [SpatialPoint] = geography::STPointFromText('POINT(' 
           + CAST([Longitude] AS VARCHAR(20)) 
           + ' ' 
           + CAST([Latitude] AS VARCHAR(20)) 
           + ')' 
           , 4326) 
GO 

一旦你上了spatial查詢開裂,你很快就會發現,雖然查詢肯定會需要很長的時間(我的初始運行在我們的蹩腳盒子上花費了大約20個小時,雖然再次只有一次),您可以使用各種spatial函數來確定哪些郵編位於哪些邊界多邊形中,並開始通過屬於特定邊界一部分的所有郵編來分割數據。如果您無法確定您的地址數據包含縣/區/地方當局/等,這非常有用。

由於空間功能可以改善每個版本的跨越式界限,因此您也很希望將SQL Server版本升級到至少2012年。

相關問題