Daha çox

Ogr2ogr bir "tərs klip" (və ya "çıxartmaq" və ya "silmək" və ya "fərq") başqa bir shapefile edə bilərmi?


Bir vasitə varmı?ogr2ogrbir shapefile digərindən "klip çıxarmaq"?

bilirəmogr2ogr -clipsrc B.shp out.shp A.shphər hansı bir hissəsini çıxaracaqA.shpbu deyilB.shp.

Hər hansı bir hissəsini silmək üçün bir ogr2ogr əmri varmı?A.shpilə kəsişənB.shp?

Buna "ters klip", "klip çıxart", "silmək" (ArcMap) və ya "fərq" deyilənləri gördüm.

Qeyd: bu sual haqqındaogr2ogr, proqramlaşdırma tələb edən OGR kitabxanası deyil, əmr satırı vasitəsi.


Bunu sınayın,

ogr2ogr -f "ESRI Shapefile" out.shp road.shp -dialect sqlite -sql " seçin ST_Diffrence (road.geometry, seg_buff.geometry) from the road, 'seg_buff.shp'.seg_buff seg_buff "

Əlavə qoymaqseg_buffsonunda sorğu işləyir.

Bu əlavə sözə ehtiyac varogr2ogrbirbaşa avtomatik olaraq ötürülən fayllar üçün avtomatik olaraq SQL masa adları yaradır. SQL ifadəsi içərisindən əlavə bir sənəd təyin edərkən özbaşına bir cədvəl adı verməlisiniz1 SQL bəyanatında başqa yerə müraciət etmək. Bu vəziyyətdə:

Forma şəkli | Forma şəklindəki cədvəl | | | -Ə müraciət etmək üçün istifadə edəcəyimiz ad | SQL ifadəsinin başqa bir yerindəki cədvəl | | | ------------ -------- -------- 'seg_buff.shp'.seg_buff seg_buff

1 Təqdim olunan cədvəl adının fayl adı ilə (və ya cədvəllə) uyğun gəlməsi lazım deyil. Məsələn, aşağıdakılar da işləyir:

ogr2ogr -f "ESRI Shapefile" out.shp road.shp -dialect sqlite -sql " select ST_Diffrence (road.geometry, foo.geometry) yoldan, 'seg_buff.shp'.seg_buff foo "

Hər iki nümunədə dəout.shpyalnız hissələrini ehtiva edəcəkdiryol.shpdaxilində olmayanseg_buff.shp.


SQLite və SpatiaLite ilə tərtib edilmiş GDAL> = 1.10.0 istifadə:

ogr2ogr different.shp a.shp -dialect SQLite -sql "SELECT ST_Difference (a.geometry, b.geometry) AS geometry from FROM a, 'b.shp'.b"

Bu əmrdən istifadə edin:

ogr2ogr -clipsrc B.shp out.shp A.shp -clipsrclayer B