Bagaimana untuk Menyelesaikan Ralat Black Rectangle dalam D3.js GeoJSON Rendering?

Mary-Kate Olsen
Lepaskan: 2024-10-22 06:28:31
asal
410 orang telah melayarinya

How to Resolve Black Rectangle Errors in D3.js GeoJSON Rendering?

Cara Membetulkan Rendering GeoJSON yang Salah dalam D3.js

Apabila cuba untuk menggambarkan data geoJSON dalam D3.js, ia adalah perkara biasa untuk dihadapi percanggahan antara pemaparan yang dijangka dan sebenar. Satu isu tertentu timbul apabila output memaparkan segi empat tepat hitam yang besar dan bukannya ciri geografi yang dimaksudkan.

Analisis Isu

Setelah memeriksa kod yang disediakan dalam soalan, ia menjadi jelas bahawa ralat terletak pada susunan penggulungan koordinat. D3.js menggunakan matematik ellipsoidal, yang memerlukan susunan penggulungan khusus untuk koordinat. Malangnya, fail geoJSON mengandungi gabungan kedua-dua tertib penggulungan "ikut arah jam" dan "lawan arah jam", yang membawa kepada pemaparan yang salah.

Penyelesaian

Untuk membetulkan perkara ini isu, adalah perlu untuk memastikan bahawa semua koordinat dalam fail geoJSON mempunyai susunan penggulungan yang betul. Ini boleh dicapai secara manual dengan menyusun semula koordinat atau dengan menggunakan perpustakaan seperti turf.js, yang menyediakan kaedah yang mudah untuk ciri gulung semula.

Contoh Kod

Menggunakan kaedah turf.rewind() untuk membetulkan susunan penggulungan:

<code class="javascript">var fixed = features.map(function(feature) {
  return turf.rewind(feature,{reverse:true});
});</code>
Salin selepas log masuk

Pertimbangan Tambahan

Semasa membetulkan tertib penggulungan menyelesaikan isu segi empat tepat hitam, perlu diperhatikan satu lagi quirk dalam D3.js. Tidak seperti spesifikasi geoJSON, D3.js menggunakan tertib penggulungan yang bertentangan (lawan arah jam untuk mengikut arah jam dan sebaliknya). Akibatnya, tertib penggulungan mungkin perlu diterbalikkan sebelum digulung semula untuk memastikan pemaparan yang betul.

Penglihatan yang Diperbaiki

Selain membetulkan susunan penggulungan, melaraskan tetapan unjuran boleh meningkatkan visualisasi dengan memasang ciri dalam ruang yang ditetapkan. Ini boleh dicapai menggunakan kaedah fitSize untuk menskala dan menterjemah ciri:

<code class="javascript">// Fit the features to the screen
var projection = d3.geoMercator().fitSize([width, height], features);</code>
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh membetulkan pemaparan data geoJSON yang salah dalam D3.js dan mencapai visualisasi yang tepat bagi yang diingini ciri geografi.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Black Rectangle dalam D3.js GeoJSON Rendering?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan