2013-10-08 58 views
1

我想在Albers USA投影中使用D3 +傳單。D3 +傳單與Albers美國投影

我用Mike Bostock的D3 + Leaflet演示作爲起點(在這裏找到:http://bost.ocks.org/mike/leaflet/)。我不確定如何正確使用Albers USA投影。我在試圖弄清楚如何做到這一點時遇到了一些問題:

  1. 我不確定如何讓Leaflet使用Albers USA投影。我想我可以使用Proj4Leaflet插件來完成它,但是在創建指定Albers USA的CRS時,我一直無法找到需要傳遞給它的參數。我在spatialreference.org上發現了一些潛在的配置字符串,但是我不知道要指定什麼來源或分辨率,並且沒有找到解釋它的任何內容。
  2. D3的Albers USA投影對集合中的某些點和邊界返回null。我使用Mike Bostock使用的us-states.json文件。我在這裏找到了解釋:https://github.com/mbostock/d3/issues/1287。 「[...]它現在將返回null,因爲複合投影的剪輯範圍之外的點,因爲使用投影流時不會顯示這些點」。我不知道如何從這裏開始。我應該使用不同的數據集嗎?

如果任何人有任何建議如何進行,我將不勝感激!

+0

你有使用AlbersUSA具體原因是什麼?如果它與另一個投影一起工作,那麼使用它會容易得多。 –

+0

是的,我需要讓阿拉斯加和夏威夷接近美國大陸。你知道另一種方式嗎?我還需要能夠在其中放置標記,而不僅僅是顯示它們。 –

+0

AFAIK Leaflet沒有albersUSA投影,所以我不認爲你可以做這種特定的組合。 –

回答

0

您可以有兩個不同的問題,所以在這裏非常簡短的回答既 -

1)源數據並不需要在阿爾伯斯-US(這是不嚴格的說反正投影 - AK和HI不在墨西哥),以便將它帶入傳單。下面是美國各州數據集作爲GeoJSON的,在地理座標:https://gist.github.com/wboykinm/6979292

2)無論源數據的投影,單張只呈現在谷歌墨卡託投影(你在你開始看到的例子投影)。如果你絕對必須擁有美國的Albers,那麼由於上下文扭曲的原因,它應該不是真正的pan-able/zoomable地圖。只需使用Mike的D3示例製作靜態地圖:http://bl.ocks.org/mbostock/6320825

如果您決定使用Albers US製作Leaflet的滑動地圖,我是誰來阻止您?但是這個過程需要a)在GIS程序中移動特徵幾何圖形; b)將Tilemill欺騙成使用錯誤的投影,因爲它會爲您在Leaflet中使用創建切片。不是推薦的行動方案。

我也將是失職,如果我沒有提到,你總是可以讓你的D3圖形縮放與d3.behavior.zoom()