Lebih banyak lagi

CartoDB - Multipoligon tidak menunjukkan persimpangan

CartoDB - Multipoligon tidak menunjukkan persimpangan


Saya menghadapi masalah dengan Multipoligon di CartoDB.

Saya mempunyai senario yang sangat sederhana: Baris multi poligon di atas meja yang perlu dipaparkan di peta. Faktanya ialah apabila lebih daripada dua poligon bertentangan, MapView hanya memaparkan bahagian yang tidak biasa di antara poligon. Sangat mudah untuk menunjukkan:

(Itu adalah 3 poligon asli, dirender secara manual menggunakan Google Maps API)

(Ini adalah rendering CartoDB. Kawasan tumpang tindih tidak ada!)

Yang paling menggila ialah perender menunjukkan bahagian yang diliputi oleh tiga poligon. Anda dapat melihat kawasan kecil Botafogo, kawasan ini diliputi oleh tiga poligon dan ditunjukkan dengan betul pada rendering CartoDB.

Ada idea mengapa ini berlaku dan bagaimana memperbaikinya? Saya tidak menemui apa-apa yang berguna dalam dokumentasi. Satu-satunya jalan penyelesaian yang dapat saya lakukan adalah dengan melakukan beberapa operasi menggunakan Postgis (ST_Polygonize) tetapi jika saya melakukan ini saya akan kehilangan pilihan penyaringan, kerana saya akan menggunakan pertanyaan khusus. Bagi saya, tidak masuk akal mengapa CartoDB tidak menunjukkan kawasan yang bertindih.


Dalam kes anda, poligon terakhir mempunyai susunan terbalik di bucu-bucu jadi itu sebabnya mapnik (perpustakaan yang kita gunakan untuk membuat) geometri dikeluarkan.

Sekiranya anda membuat pesanan semula untuk poligon terbaru (dengan contoh st_reverse) ia diberikan seperti yang anda jangkakan. Saya tidak benar-benar tahu jika itu dijangkakan dan ini adalah bug mapnik, saya akan mengesyorkan anda memfailkan tiket di repo-repo-nya.

Ini adalah poligon "tetap":

MULTIPOLYGON (((- 43,162879943848 -22,913021404896, -43,183307647705 -22,891041392518, -43,209915161133 -22,897841345212, -43,209915161132 -22,909068428006, -43,21626663208 -22,92092701284, -43,220729827881 -22,93310074698, -43,196353912354 -22,940372845276, -43,187084197998 -22,953493251659, -43,168888092041 -22,953809390333, - 43,148288726807 -22,921875654802, -43,162879943848 -22,913021404896)), ((- 43,142280578613 -22,966296276961, -43,175239562988 -22,944482988916, -43,207511901855 -22,941953684522, -43,233604431152 -22,9495414559, -43,246307373047 -22,98115258902, -43,262100219727 -22,984313295763, -43,264846801758 -22,965031834579, -43,293685913086 -22,963767380373, -43,29231262207 -23,004224047371, -43,215408325195 -22,988422103968, -43,189830780029 -22,991266590272, -43,142280578613 -22,966296276961)), ((- 43,220901489258 -22,922349973292, -43,221416473389 -22,93626257684, -43,305015563965 -22,995059145473, -43,243560791016 -22,999799689663, -43,122024536133 - 22.947960705279, -43.164596557617 -22.9043247036, - 43.198757171631 -22.903692194474, -43.213176727295 -22.912072700955, -43.220901489258 -22.922349973292)))

Tonton videonya: CartoDB tutorial