Saya bertanya-tanya metode penyimpanan apa yang akan menghasilkan pembacaan tercepat dari vektor peta untuk rendering. SHP? PostGres? SQLite? (Mereka tidak sering berubah dan saya tidak perlu fungsi spasial untuk vektor-vektor ini).
8
Jawaban:
Tes Kecepatan
Ada beberapa tes yang sangat cepat dari shapefile versus database (PostGIS) untuk MapServer dalam presentasi ini (dari 2007).
Singkatnya:
Dan waktu secara rinci, yang juga dapat membantu untuk memutuskan apakah format penyimpanan merupakan faktor penting.
Selalu gunakan FastCGI di MapServer jika menggunakan database, karena koneksi database dapat digunakan kembali, jika tidak, koneksi baru harus dibuat pada setiap permintaan.
Implementasi untuk Pembaca Shapefile
Kecepatan membaca shapefile (dan data dari database) tergantung pada implementasi pengkodean spesifik.
Kode sumber untuk MapServer membuka shapefile dapat dilihat di sini . Mengikuti komentar Anda dapat melihat betapa pentingnya memiliki indeks. Biasanya Anda hanya bisa membaca file dalam satu arah untuk mendapatkan catatan, tetapi dengan indeks Anda bisa membaca dalam dua arah.
Lain adalah contoh membuka shapefile dapat dilihat pada sumber Python untuk PyShp . Sekali lagi Anda dapat melihat bagaimana indeks digunakan untuk menemukan bentuk tertentu secara langsung.
Faktor-Faktor Lain untuk Dipertimbangkan
Keterbatasan format DBF (batas ukuran bidang, tidak ada dukungan nol, batas penyimpanan teks), juga harus dipertimbangkan ketika memutuskan apakah akan menggunakan database atau tidak.
Basis data juga menawarkan cara untuk mengamankan data, lebih mudah bergabung dan membuat tampilan, mencatat dan banyak fitur lain yang tidak akan Anda dapatkan dengan file mandiri.
sumber
Berlawanan dengan apa yang dikatakan dariapra, pengalaman saya dalam mengembangkan Maperitive memberi tahu saya bahwa hambatan terbesar adalah pemuatan data yang sebenarnya sebelum rendering. Itu semua sangat tergantung pada seberapa besar keseluruhan dataset tersimpan dan seberapa besar dataset yang Anda coba render dalam sekali jalan. Jika Anda dapat memuat semuanya ke dalam memori, maka shapefile mungkin lebih baik daripada menggunakan mesin basis data.
sumber
Program mana yang akan Anda gunakan untuk rendering? Ini dapat mempengaruhi hasil. Bagaimanapun, memiliki shapefile dengan indeks spasial (mis. Http://mapserver.org/utilities/shptree.html ) yang digunakan seringkali merupakan teknik tercepat. Terlepas dari itu: itu tergantung pada aplikasi Anda, tetapi caching hasil yang Anda rujuk sering jauh lebih berguna untuk meningkatkan kinerja.
sumber
Shapefile akan menjadi yang tercepat dan mungkin taruhan terbaik Anda. Ada overhead untuk setiap database SQL, lalu ada pengelolaan pengembalian set hasil besar (konversi dari tipe data database ke tipe data asli juga akan memperlambat hal-hal).
Coba gunakan paket open source dari maptools.org untuk membaca Anda. Alat-alat ArcGIS, meskipun dibuat khusus, memiliki sedikit overhead untuk memulai dan mahal.
Semoga ini membantu
sumber