2014-04-17 17 views
7

Tôi có thể sử dụng thuật toán nào để tạo một biểu đồ có trọng số như dưới đây: http://www.brainpickings.org/index.php/2010/04/15/cartograms/?Thuật toán (và các công cụ) để tạo một biểu đồ trọng số từ một shapefile?

Tôi có thể tạo biểu đồ shapefile bằng mã từ R, thư viện .NET và cũng sử dụng PostGIS. Tuy nhiên, tôi không thể tìm thấy cụm từ tìm kiếm để sử dụng để tìm cách triển khai thuật toán được sử dụng để tạo ra các ô shapefile bị biến dạng này. Không nhất thiết tìm cách chỉ vẽ bản đồ thế giới, vì vậy phải có khả năng làm việc với một shapefile tùy ý.

+0

Tôi đã tìm thấy một số trang trình bày ở đây về các chủ đề tương tự nhưng không ai nói về cách quy mô shapefile 'thế giới thực': http://i11www.iti.uni-karlsruhe.de/_media/teaching/winter2012/algo2/cartograms. pdf – JustinJDavies

+0

Có vẻ như có một danh sách thuật toán đồ họa trên Wikipedia tại http://en.wikipedia.org/wiki/Cartogram - Tôi sẽ đọc qua chúng và xem có bất kỳ liên kết hữu ích nào đưa tôi đến bất cứ đâu – JustinJDavies

+0

Cần vào thư viện nhưng có vẻ như cuốn sách này cũng có thể chứa một số thông tin: http://www.amazon.co.uk/Rediscovering-World-Transformations-Physical-Springer/dp/3642348475/ref=sr_1_cc_1?s=aps&ie= UTF8 & qid = 1397743745 & sr = 1-1-catcorr & keywords = 9783642348471 – JustinJDavies

Trả lời

4

Vì vậy, như đã đề cập trong nhận xét của OP, chúng được gọi là biểu đồ vùng. Việc triển khai gọn gàng nhất mà tôi biết là cartogram.js, dựa trên phép thuật D3 library. Nếu trang đó từng xảy ra, bạn sẽ có thể tìm thấy một trang tương tự bằng cách Googling "biểu đồ khu vực D3" và nếu điều đó không đưa bạn đến bất kỳ đâu thì bài báo gốc về chủ đề là Dougenik 1985.

3

Câu trả lời D3.js của Andy là tuyệt vời, tuy nhiên, chỉ để hoàn thành, có một triển khai ở đây, Cartogram algorithm, xuất phát từ một plugin Python cho ứng dụng GIS nguồn mở tuyệt vời, QGIS. Bài báo và thuật toán gốc được trích dẫn trong phần bình luận. Thư mục mã nguồn đầy đủ cho plugin QGIS là: https://code.google.com/p/ftools-qgis/source/browse/trunk/cartogram/?r=115

Tôi nhận ra rằng bạn đã yêu cầu C#, và có một số đối tượng hình học QGIS trong mã, nhưng phương pháp TransformGeometry minh họa cách hoạt động của thuật toán, QGIS đọc shapefiles, và trong trường hợp bạn muốn thực hiện bất kỳ quá trình xử lý kiểu GIS nào khác, QGIS sẽ là một lựa chọn tốt.

+0

Điều này trông thực sự thú vị. Tôi sẽ có một chút thời gian để xem xét vào cuối tuần tới và có lẽ tôi sẽ đăng lại. Cảm ơn John – JustinJDavies

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