polymaps & poly… poligon

9

Saya telah bermain dengan Bing Maps + Polymaps baru-baru ini.

Menjadi jelas bahwa Bing adalah satu-satunya sumber pemetaan yang tersedia untuk Polymaps yang mencakup citra satelit . Apakah ini benar?

Saya mencoba menyelesaikan menggambar banyak poligon dengan ukuran berbeda di peta, dan mengisinya dengan warna berbeda tergantung pada apa yang mereka wakili. Selanjutnya, saya ingin masing-masing poligon ini dapat diklik.

Saya mengerti bahwa untuk memuat data geografis ke peta dengan Polymaps, Anda dapat menggunakan .features () atau .url () sebagai bagian dari objek geoJSON.

Saya memiliki .features () berfungsi, tetapi dengan menggunakan fungsi ini data poligon harus tertanam ke dalam file javascript itu sendiri - seperti pada:

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"}
    }

        ]));

Saya ingin data ini benar-benar berasal dari database dan tidak terletak secara statis di dalam javascript itu sendiri - yang memberitahu saya bahwa saya harus menggunakan metode .url () sebagai gantinya - benar? Dan jika saya menggunakan metode .url (), saya harus melewati templat URL yang valid yang mengembalikan geoJSON ... Bagaimana cara melakukannya dengan data pribadi saya? Saya terbiasa dengan PHP dan mySQL - haruskah saya menggunakan sistem basis data spasial?

Dan bagaimana server peta seperti MapServer, GeoServer, dan lainnya cocok dengan ini? Tidak bisakah saya membuat skrip PHP untuk membaca templat ini dari variabel $ _GET, meminta basis data dan mengembalikan string geoJSON yang tepat?

Saya benar-benar hanya membutuhkan inspirasi, beberapa petunjuk untuk mengarahkan saya dalam perjalanan dan membunuh beberapa keraguan yang saya miliki. Saya menemukan diri saya hanya menggali di sekitar stackexchange dan googling segalanya dari server peta, ke basis data geo spasial - sebut saja, saya mungkin pernah membacanya, tapi saya kesulitan menyatukannya.

Pertanyaan panjang lebar tetapi setelah hal-hal ini diklarifikasi, saya harus berada dalam posisi yang jauh lebih baik.


Kami dapat menghapus polymaps dari persamaan jika ada pengganti.

Singkatnya, saya mencari untuk mengambil sejumlah besar poligon dari database (PostGIS?) Dari semua bentuk, ukuran, warna, dan transparansi yang berbeda, dan plot mereka di peta. Pada dasarnya itu! Polymaps memiliki grafik vektor + saya pikir mendapatkan ini saat bepergian akan sepele mengingat kode di atas ... kita dapat memo itu jika Anda memiliki ide lain. Apa adalah solusi terbaik? Satu-satunya persyaratan bisnis saya adalah bahwa Citra Satelit harus diaktifkan ... Yang berarti kami bekerja dengan Bing atau Google.

Jordan Arseno
sumber

Jawaban:

8

Jika Anda berbicara tentang GeoJSON Anda dapat menggunakan segala jenis database, dan server backend, yang Anda inginkan asalkan:

1) Diharapkan untuk menerima TMS atau / URL gaya gay /{z-.

(Lihatlah sesuatu seperti Tilestache (.org) jika Anda ingin / perlu melihat matematika terlibat dalam melakukan itu.)

2) Mengembalikan GeoJSON.

Untuk penataan, dan menambahkan bit interaktif, ke hasil data Anda akan ingin mendefinisikan fungsi "memuat" menggunakan metode on () layer. Sebagai contoh:

var l = org.polymaps.geoJson ();
l.url ("http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on ("memuat", fungsi (e) {...});

Situs Polymaps memiliki banyak dokumentasi dan contoh kode yang baik, tetapi saya juga menyertakan slide dan kode sampel dari bengkel Polymaps yang saya lakukan baru-baru ini:

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

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

Bersulang

pengguna2016
sumber
Terima kasih Aaron, tautan yang Anda poskan benar-benar sangat diperlukan. Saya sudah mengunduh file untuk ditinjau nanti, saya akan merujuk kepada mereka ketika saya berada di tahap interaktivitas. Saya tidak yakin Tilestache adalah sesuatu yang saya butuhkan karena ubin sebenarnya sedang dirawat oleh Bing, bukan? Data khusus yang akan saya sajikan adalah data poligon, bukan citra .png, .jpg, dll. Apakah ada kemungkinan saya bisa mengambil puncak di ./flickr.json? Tautan tidak ada. Ceria dan terima kasih lagi.
Jordan Arseno
Saya menemukannya di root workshop / 005-data /, terima kasih!
Jordan Arseno
2

Ok, jadi ini masalahnya - Posting Blog ini

Dihapus semuanya. Ini harus dibaca untuk siapa pun yang bermain dengan Polymaps. Saya menemukannya melalui Henry di Reddit

Aaron disebutkan menggunakan TileStache dan memang ... Itulah kuncinya, saya hanya tidak melihat caranya - Posting blog di atas cukup informatif dalam menggunakan TileStache. Kemenangan Besar.

Jordan Arseno
sumber
Anda mencatat bahwa Anda ingin setiap elemen dapat diklik, bagaimana Anda mencapai itu? Saya memiliki peta saya yang sedang berjalan, tetapi saya tidak bisa membuat elemen yang bisa diklik di peta.
halo Erik, jika Anda mengunduh dan mengekstrak plugin polymaps ke server web Anda, maka Anda dapat mengakses contoh yang sempurna di: localhost / polymaps / contoh / tipsy / tipsy.html - Periksa sumber pada orang ini. Sejujurnya, saya telah menempatkan proyek pemetaan ini ke mode hiatus sementara dan belum mencapai datapoint yang dapat diklik, tetapi di sinilah saya akan mulai. Semua yang terbaik!
Jordan Arseno
@JordanArsenault tautan "posting blog ini" tidak berfungsi lagi - apakah Anda kebetulan mengunduh informasinya? Terima kasih
Stephen Lead
hei Stephen, memang, Postingan Blog sekarang turun dan saya tidak memiliki salinan yang diunduh. Namun, pembuat goalfinch dapat ditemukan di sini: linkedin.com/in/hanskuder ... Tolong, jika Anda menemukan kontennya, beri tahu saya dan saya akan memperbaiki tautannya - atau silakan mengedit posting ini :)
Jordan Arseno