đa giác & đa giác poly poly


9

Gần đây tôi đã chơi với Bing Maps + Polymaps.

Rõ ràng là Bing là tài nguyên ánh xạ duy nhất có sẵn cho Polymaps bao gồm hình ảnh vệ tinh . Điều này có đúng không?

Tôi đang cố gắng hoàn thành việc vẽ nhiều đa giác có kích thước khác nhau trên bản đồ và lấp đầy chúng bằng các màu khác nhau tùy thuộc vào những gì chúng thể hiện. Hơn nữa, tôi muốn mỗi đa giác có thể nhấp được.

Tôi hiểu rằng để tải dữ liệu địa lý lên bản đồ bằng Polymaps, bạn có thể sử dụng .features () hoặc .url () như một phần của đối tượng GeoJSON.

Tôi có .features () hoạt động, nhưng bằng cách sử dụng chức năng này, dữ liệu đa giác phải được nhúng vào chính tệp javascript - như trong:

map.add(po.geoJson()
        .features([
    {
      "geometry": {
        "coordinates": [[
[[-63.599925935268395,44.64018531837119],[-63.599789142608664,44.640219671024646],[-63.59973818063736,44.6401452402498],[-63.599877655506134,44.64010707058464],[-63.599925935268395,44.64018150140844]],

[[-63.59986692667008,44.639874235083376],[-63.59975695610047,44.63991431339196],[-63.599697947502136,44.63981507181532],[-63.5998159646988,44.639782627416906],[-63.59986424446105,44.6398723265918]]
        ]],
        "type": "MultiPolygon"
      },
      "type": "Feature",
      "id": "beat:05X",
      "properties": {"name": "05X"}
    }

        ]));

Tôi muốn dữ liệu này thực sự đến từ cơ sở dữ liệu và không nằm tĩnh trong chính javascript - điều này cho tôi biết tôi nên sử dụng phương thức .url () thay vào đó - đúng không? Và nếu tôi sử dụng phương thức .url (), tôi phải vượt qua một mẫu URL hợp lệ trả về GeoJSON ... Làm thế nào để tôi thực hiện điều này với dữ liệu riêng tư của mình? Tôi quen thuộc với PHP và myQuery - tôi phải sử dụng hệ thống cơ sở dữ liệu không gian thay thế?

Và làm thế nào để một máy chủ bản đồ như MapServer, GeoServer và những người khác phù hợp với điều này? Tôi không thể thiết lập tập lệnh PHP để đọc các mẫu này từ biến $ _GET, truy vấn cơ sở dữ liệu và trả về chuỗi GeoJSON thích hợp?

Tôi thực sự chỉ cần một chút cảm hứng, một vài gợi ý để đặt tôi trên con đường của mình và tiêu diệt một số nghi ngờ mà tôi có. Tôi thấy mình chỉ đào bới xung quanh stackexchange và googling mọi thứ từ máy chủ bản đồ, đến cơ sở dữ liệu không gian địa lý - bạn đặt tên cho nó, có lẽ tôi đã đọc về nó, nhưng tôi đang vật lộn để ghép các mảnh lại với nhau.

Câu hỏi dài dòng nhưng một khi những điều này được làm rõ, tôi nên ở một vị trí tốt hơn nhiều.


Chúng ta có thể loại bỏ polymaps khỏi phương trình nếu có sự thay thế.

Tóm lại, tôi đang tìm cách lấy một số lượng lớn các đa giác từ cơ sở dữ liệu (PostGIS?) Với tất cả các hình dạng, kích cỡ, màu sắc và độ trong suốt khác nhau và vẽ chúng trên bản đồ. Đó chính là nó! Polymaps có đồ họa véc tơ + Tôi nghĩ rằng việc này khi đang di chuyển sẽ không quan trọng bằng mã trên ... chúng ta có thể loại bỏ nó nếu bạn có ý tưởng khác. Có gì giải pháp tốt nhất? Yêu cầu kinh doanh duy nhất của tôi là Hình ảnh vệ tinh được bật ... Điều đó có nghĩa là chúng tôi đang làm việc với Bing hoặc Google.

Câu trả lời:


8

Nếu bạn đang nói về GeoJSON, bạn có thể sử dụng bất kỳ loại cơ sở dữ liệu và máy chủ phụ trợ nào, bạn muốn miễn là nó:

1.

(Hãy xem một cái gì đó như Tilestache (.org) nếu bạn muốn / cần xem toán học liên quan đến việc đó.)

2) Trả về GeoJSON.

Để tạo kiểu và thêm các bit tương tác, vào kết quả dữ liệu, bạn sẽ muốn xác định hàm "tải" bằng cách sử dụng phương thức on () của lớp. Ví dụ:

var l = org.polymaps.geoJson ();
l.url ("http://example.com/tiles/ đũaZspl / nbXspl / đũaYspl.json");
l.on ("tải", hàm (e) {...});

Trang web Polymaps có rất nhiều tài liệu và mã ví dụ hay, nhưng tôi cũng đã bao gồm các trang trình bày và mã mẫu từ một hội thảo về Polymaps tôi đã làm gần đây:

http://www.aaronland.info/talks/where2011/

http://www.aaronland.info/talks/where2011/workshop

Chúc mừng


Cảm ơn Aaron, các liên kết bạn đã đăng là thực sự không thể thiếu. Tôi đã tải xuống các tệp để xem lại sau, tôi sẽ đề cập đến chúng khi tôi ở giai đoạn tương tác. Tôi không chắc Tilestache là thứ tôi yêu cầu vì ốp lát thực sự đang được Bing chăm sóc, phải không? Dữ liệu tùy chỉnh tôi sẽ cung cấp là dữ liệu đa giác, không phải bất kỳ loại hình ảnh .png, .jpg, v.v. Có bất kỳ cơ hội nào tôi có thể đạt đỉnh tại ./flickr.json không? Thiếu liên kết. Chúc mừng và cảm ơn một lần nữa.
Jordan Arseno

Tôi tìm thấy nó trong thư mục gốc của hội thảo / 005-data /, cảm ơn!
Jordan Arseno

2

Ok, đây là thỏa thuận - Bài viết trên Blog này

Dọn dẹp MỌI THỨ lên. Đây là phần phải đọc cho bất kỳ ai chơi với Polymaps. Tôi tìm thấy nó qua Henry trên Reddit

Aaron đã đề cập đến việc sử dụng TileStache và thực sự ... Đó là chìa khóa, tôi chỉ không thấy làm thế nào - Bài đăng trên blog khá nhiều thông tin trong việc sử dụng TileStache. Chiến thắng lớn.


Bạn lưu ý rằng bạn muốn từng yếu tố có thể nhấp, làm thế nào bạn thực hiện được điều đó? Tôi có bản đồ của mình đang chạy, nhưng tôi đang đứng trên một bức tường để làm cho các yếu tố có thể nhấp vào bản đồ.

xin chào Erik, nếu bạn tải xuống và trích xuất plugin polymaps về máy chủ web của mình thì bạn có thể truy cập một ví dụ hoàn hảo tại: localhost / polymaps / example / tipsy / tipsy.html - Kiểm tra nguồn trên anh chàng này. Sự thật mà nói, tôi đã đưa dự án ánh xạ này vào chế độ tạm thời tạm thời và chưa đạt được các biểu dữ liệu có thể nhấp được, nhưng đây chính xác là nơi tôi sẽ bắt đầu. Tất cả là tốt nhất!
Jordan Arseno

@JordanArsenault liên kết "bài đăng trên blog này" không hoạt động nữa - bạn có tình cờ tải xuống thông tin không? Cảm ơn
Stephen chì

Này Stephen, thực sự, Blog Post hiện đã ngừng hoạt động và tôi không có bản sao được tải xuống. Tuy nhiên, người tạo ra goalfinch có thể được tìm thấy ở đây: Linkedin.com/in/hanskuder ... Xin vui lòng, nếu bạn tìm thấy nội dung, hãy cho tôi biết và tôi sẽ sửa các liên kết - hoặc thoải mái chỉnh sửa bài đăng này :)
Jordan Arseno
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.