2011-11-22 42 views

Trả lời

-1

Bạn có thể xem xét GDAL, không chắc chắn liệu nó có hỗ trợ đầy đủ việc tạo SVG hay không, nhưng GDAL thường có thể chuyển đổi tất cả các định dạng địa lý thành các geoformats khác.

Xem: http://www.gdal.org/ogr/ogr_formats.html

+0

Cảm ơn, nhưng tôi cần thư viện Javascript hoặc plugin và GDAL/OGR là C++. – camilokawerin

8

Bạn có thể sử dụng thư viện d3.js. Sau đoạn mã sẽ thực hiện công việc:

Bao gồm d3.js trong file html của bạn

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

Giả sử, bạn đã div với id bản đồ trong tập tin html của bạn:

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

sau js đang sẽ thêm bản đồ vào bản đồ div của bạn. geoJsonObj là geojson của bạn.

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); 

Để xem ví dụ làm việc, hãy đi here. Lưu ý rằng ví dụ sử dụng topojson làm đầu vào cho thuộc tính .data().

+0

Biến 'đường dẫn' đến từ đâu trong mã của bạn, ở dòng cuối cùng? – user568458

+0

Nevermind, tôi tìm thấy (và cập nhật) một ví dụ hoàn chỉnh ở đây: http://stackoverflow.com/questions/18425440/displaying-map-using-d3-js-and-geojson/38552478#38552478 – user568458

+0

@ user568458 đường dẫn không phải là một biến, nó là một phần tử svg, giống như div trong html. https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths –

1

Có công cụ cơ bản có sẵn để chuyển đổi geojson thành svg geojson2svg và cũng như npm module. Đầu ra từ geojson2svg là chuỗi svg để công cụ này có thể được sử dụng trong trình duyệt cũng như với node.js.

Rất dễ dàng để tách chuỗi svg thành phần tử dom. Điều này đã được giải thích bởi bobincehere rất độc đáo với mã JavaScript. Tôi đã thực hiện một số npm module để thuận tiện.

geojson2svg mang lại cho bạn sự linh hoạt hơn nhưng đối với giải pháp nhanh d3 thì tốt nhất.

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của geojson2svg.

Các vấn đề liên quan