Lagi

Matriks kedekatan dari TopoJSON


Saya memiliki file TopoJSON yang menjelaskan distrik pemilihan di Montreal, dan saya ingin menghasilkan matriks ketetanggaan yang akan memberi tahu saya distrik mana yang berbatasan dengan distrik lain. Apakah ada cara mudah untuk melakukan ini?

Sunting: ini filenya https://github.com/nicolaskruchten/mtlelection2013bydistrict/blob/master/districts.topojson


Anda bisa mendapatkan informasi kedekatan mentah sebagai efek samping dari topojson.mesh dan topojson.meshArcs fungsi (dengan asumsi Anda menyukai JavaScript). Parameter ketiga opsional untuk itu adalah fungsi yang akan dipanggil (mungkin berulang kali) untuk geometri yang berdekatan. Berikut beberapa pseudo-code nodejs:

var topojson = membutuhkan('topojson'); var fs = membutuhkan('fs'); var inputTopology = JSON.parse(fs.readFileSync(… )); var objectOfInterest = inputTopology.objects.alldistricts; topojson.meshArcs(inputTopology, objectOfInterest, function(distA, distB) { console.log(distA.properties.Name + " dan " + distB.properties.Name + " berdekatan!"); });

Itu tidak menghasilkan matriks nyata, tetapi itu bisa dilakukan dengan sedikit kode tambahan di dalam fungsi itu.

Dan perhatikan bahwa fungsinya akan dipanggil untuk setiap busur di topologi, jadi Anda akan mendapatkan panggilan di manadistAdandistBadalah objek yang sama (ketika busur adalah "eksterior"), dan Anda berpotensi mendapatkan beberapa panggilan untuk hal yang samadistAdandistBjika salah satu tepi bersama mereka terdiri dari beberapa busur.


Tonton videonya: TopoJSON shape map in Power BI (September 2021).