2014-03-04 32 views
1

我是d3 geo的新手。我的任務是製作一張波士頓地圖,併爲其添加一些互動功能。用d3製作增強本地地圖的一些選項

到目前爲止,我已經能夠得到波士頓的輪廓。但是,基本地圖應與您在Google地圖中看到的內容相媲美 - 它應該包含建築物,道路,街道名稱和城市名稱,河流等。基本地理位置使該地區更加熟悉。

現在,我不需要平移,並且可能只有兩個或三個縮放狀態。

所有可視化我見過的疊加互動功能,在這樣的地圖似乎用圖像的底層地圖:windhistorypolymapsgoogle maps多。所以我想我的問題是:

  1. 爲什麼有些地圖中使用的圖像,爲「背景」?它只是在現有地圖上構建最簡單的方法嗎?性能更高嗎?

  2. 如果我使用圖像方法,是否有任何限制我可以添加的功能?我希望能夠做一些類似於windmaps,動畫,地圖等的東西。

  3. 什麼是使用圖像的版權影響?我想這個答案是「取決於我使用哪些圖像」,但是有沒有附加任何字符串的標準庫?例如,我知道我是否使用Google地圖,我必須展示他們的徽標,有API限制等。是否有任何標準來源完全打開?

  4. 是否有任何例子只通過TopoJSON添加地理位置?

很抱歉,如果其中的一些似乎是顯而易見的,但我完全新的地圖,只是不知道標準的做法。謝謝你的幫助!

回答

2

快速解決您的問題。希望有人與更多的繪圖經驗,可以給你更多的細節:

  1. 爲什麼有些地圖中使用的圖像,爲「背景」?

    文件大小和計算時間,主要是。繪製具有建築物,道路和地形的完整地圖需要大量數據並且瀏覽器需要大量時間來渲染它。如果您的瀏覽器DOM過於複雜,即使在原始繪圖之後,它也可能會減慢所有交互。

  2. 如果我使用圖像方法,是否有任何限制我可以添加的功能?

    大多數交互式地圖使用多個圖層是有原因的。背景圖像最適合潛在的「土地」類型圖像,任何想要交互的應用都應該放在SVG的頂層。

  3. 什麼是使用圖像的版權影響?

    如果您使用某人的圖片,則必須遵守其許可。您可能需要查看OpenStreetMap project

  4. 是否有任何例子只通過TopoJSON添加地理位置?

    我想這取決於你所說的「地理」。 Mike Bostock根據US Atlas data生成了各種功能的topoJSON。

    至於是否有意義:TopoJSON直接對路徑/邊界進行編碼,並將區域編碼爲由一組邊界包圍的區域。你可以用它來編碼街道和河流,甚至建立輪廓,但是你不會保存任何文件大小相對常規的GeoJSON,因爲這些路徑通常不會像區域邊界那樣被重複。相對於使用圖像切片,文件大小的任何改進都會隨着處理時間的增加而反擊。

+0

非常有幫助,非常感謝!這是有道理的,我只是不知道它是如何完成的,我認爲所有的d3地圖都是用d3.geo製作的。優秀的資源,尤其是開放街道地圖。我會檢查他們。 –

+0

AmeliaBR我碰到了[這個例子](http://bl.ocks.org/mbostock/5616813),它似乎在SVG中繪製了所有的部分。那裏有什麼見解? –

+0

這很有趣 - 它仍然使用圖像「瓷磚」作爲背景,但瓷磚是SVG。我認爲好處是,SVG屬性都是預先計算的,而不必在運行時計算出地圖投影和縮放。此外,您仍然可以根據需要根據地圖的位置加載每個圖塊 - 您無需一次加載整個數據集。 – AmeliaBR