2017-05-11 66 views
1

我美國的一個簡單的地圖,我想緯度繪製一些測試點長。我發現this block解釋了這個過程,但是我很難將語法轉換爲v4。即使我在塊中運行確切的代碼,也會引發相同的錯誤。繪圖緯度/龍在地圖上 - D3.js V4

我可以看到d3.geoMercator()種「變平」的地圖。這是否需要?這看起來微不足道,但我喜歡沒有這個美國地圖的自然曲率。

好奇正確的做法是什麼,如果一些代碼甚至是必要的。特別是這部分:

projection //Added from block -- What is this doing? 
    .scale(1000) //Added from block 
    .center([-106, 37.5]) //Added from block 

我用破碎的添加代碼,我添加註釋添加的代碼:https://jsfiddle.net/fettww66/2/

回答

1

在您鏈接的是bl.ock,你只需要改變,使其運行與D3 V4:

  • var projection = d3.geo.mercator()var projection = d3.geoMercator()

  • var path = d3.geo.path()var path = d3.geoPath()

下面是使用D3 V4更新bl.ocks:http://bl.ocks.org/anonymous/d0b530924ef2aae3436840a1dbb3a39f

關於你的小提琴,這個問題很簡單:您使用的是已經預計 JSON 。就在設定投影null

.projection(null) 

這裏是更新的小提琴:https://jsfiddle.net/vypu9qwr/

+0

謝謝,@Gerardo。代碼運行良好,然而,代碼變量'aa'中列出的緯度/長度被放置在舊金山。當我運行代碼時,它將它放在猶他州西部。我發現我可以操縱'projection.scale(1000).center([ - 106,37.5])',它會移動這個點。我猜我需要編輯這個到一些正確的價值。我只是不知道它是什麼。下面是目前小提琴:[https://jsfiddle.net/Lv5knc0n/](https://jsfiddle.net/Lv5knc0n/) –

+0

好吧,我回答**你的兩個帖子的**問題(需要什麼樣的變化使用D3 v4和爲什麼小提琴不工作)。看起來你有更多的問題!對不起,這太多了,我有一個不回覆有幾個問題的帖子的政策。 –

+2

雖然你總是可以做一個*新的問題。這樣,每個帖子就會出現1個問題(實際上,對於OP詢問幾個問題的問題,人們可以近距離投票爲*太寬泛)。 –