Lagi

Pilih poligon yang hanya sebagian anggota poligon lain dengan luas poligon lainnya

Pilih poligon yang hanya sebagian anggota poligon lain dengan luas poligon lainnya


Saya perlu menghasilkan titik acak dalam geometri, yang berfungsi cukup baik, tetapi ada beberapa kesalahan kecil. Ambil gambar di bawah ini. Ada beberapa Poligon kehijauan dan kemerahan(?!) yang tidak memiliki titik di dalamnya, tetapi seharusnya. Pertanyaan saya adalah mengapa?

Untuk lebih spesifik tentang apa yang saya lakukan:

  • Kode saya menggunakan python rupawan untuk menghasilkan poin dalam poligon
  • Ini membebani area (hijau = perumahan) dengan 50%, sehingga lebih banyak poin dihasilkan di area merah (industri), kuning (ritel) dan turkis (komersial).
  • Poligon diambil dari OSM
  • Titik-titik tersebut mewakili titik akhir rute komuter

Jadi apakah ada fungsi dll yang bisa saya jalankan di poligon sehingga ada titik yang dihasilkan di dalamnya? Dugaan saya adalah, bahwa mereka tidak valid.

MEMPERBARUI

Oke saya menemukan masalahnya. Seperti yang Anda lihat di bawah, area yang diminati dibagi. Artinya mereka memiliki bagian-bagian yang dimiliki oleh komunitas lain. Kueri yang saya gunakan untuk menemukan Geometri dalam komunitas terlihat seperti ini:

BUAT TABEL SEMENTARA living_areas ON COMMIT DROP AS SELECT cara sebagai geom, CASE WHEN p.landuse = 'residential' THEN (0.5*ST_Area(way)) ELSE ST_Area(way) END AS area FROM de_osm_polygon p INNER JOIN de_shp_{shp!s} s ON (s.rs = %(rs)s AND ST_Within(p.way, s.geom)) WHERE OR landuse ='industrial' OR landuse="commercial" OR landuse="retail"

Apa yang harus saya ubah dalam Query ini untuk mendapatkan seluruh poligon yang juga merupakan bagian dari komunitas lain atau hanya bagian yang terletak di dalam komunitas?


Tonton videonya: Part Menghitung Luas Poligon di arcgis. Daya Dukung Daya Tampung Lingkungan Hidup