2011-11-22 121 views

回答

8

可以使用d3.js庫。下面的代碼片段將做的工作:

在HTML文件d3.js

<script src="files/d3.v3.min.js"></script> 

假設,你已經與ID映射在HTML文件中的div:

<div id="map"></div> 

以下js代碼將地圖添加到您的div地圖。 geoJsonObj是你的geojson。

var svg = d3.select("#map").append("svg") 
      .attr("width", width) 
      .attr("height", height); 

svg.append("g") 
      .selectAll("path") 
      .data(geoJsonObj.features) 
      .enter().append("path") 
      .attr("d", path); 

要查看示例,請轉到here。請注意,該示例使用topojson作爲.data()屬性的輸入。

+0

最後一行代碼中的變量'path'來自哪裏? – user568458

+0

Nevermind,我發現(和更新)一個完整的例子在這裏:http://stackoverflow.com/questions/18425440/displaying-map-using-d3-js-and-geojson/38552478#38552478 – user568458

+0

@ user568458路徑不是一個變量,它是一個svg元素,就像html中的div一樣。 https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths –

1

有一個基本的工具可用於將geojson轉換爲svg geojson2svg,也可以使用npm module。 geojson2svg的輸出是svg字符串,因此該工具可以在瀏覽器中使用,也可以在node.js中使用。

它很容易隱蔽svg字符串到DOM元素。這已由bobincehere與JavaScript代碼很好地解釋。爲了方便,我製作了一個npm module

geojson2svg給你更多的靈活性,但對於快速解決方案d3是最好的。

聲明:我是geojson2svg的作者。