답변:
제거 사용 (ArcInfo 라이센스 필요)
가장 큰 영역 또는 가장 긴 공유 테두리가있는 인접한 다각형과 다각형을 병합하여 다각형을 제거합니다. 제거는 종종 교차 또는 결합과 같은 오버레이 작업의 결과 인 작은 은색 다각형을 제거하는 데 사용됩니다.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm
ArcGIS 10 사용자이 도구의 옵션에는 새로운 기능이 있습니다.
이제> ex_features 옵션 (옵션)을 사용 하여 원래 POLYGON 또는 POLYLINE을 유지하는 것이 가능합니다. (선택 사항) 제거하지 않아야 할 다각형 경계 또는 그 일부를 정의하는 입력 폴리선 또는 다각형 피처 클래스 또는 레이어입니다.
QGIS에서 수동으로이 작업을 수행하려면 맨 아래에 Settings|Project Properties...
있는 General
탭에서 Snapping options...
스냅하려는 레이어 확인, 모드를 to vertex
설정하고 공차를 두 점 사이의 최단 거리보다 작은 값으로 설정하십시오. 확실하지 않은 경우 단위 pixels
와 공차를 5와 같이 설정하면 약간의 세부 사항이있는 경우 바로 확대하여 잘못된 정점에 스냅하지 않도록 할 수 있습니다.
그런 다음 벡터 레이어를 편집하고 노드 도구를 선택한 다음 잘못된 점을 해당 항목으로 이동하십시오.
자동으로하는 것은 조금 까다 롭습니다. AFAIK QGIS에는이를 자동화하는 플러그인이 없으며 PostGIS는 스냅 기능이있는 GEOS를 기반으로하지만 PostGIS에는 노출되지 않습니다. 스냅 거리 이내의 이웃에 대해 다각형의 각 점을 확인하는 쿼리를 작성할 수 있지만 현재 확장 할 수있는 것은 아닙니다.
GRASS에는 v.clean.snap이 있으며 QGIS를 통해 액세스 할 수 있지만 GRASS 데이터 세트를 생성하는 추가 단계가 있습니다.
QGIS에 익숙한 사용자 : QGIS 트렁크 1.9 (OSGEO 설치 프로그램을 통해 qgis.dev로 설치 가능, qgis 홈페이지 참조)는 "슬라이 버 폴리곤 제거"라는 벡터 메뉴의 새로운 기능입니다. 결핍, 필요. 문제가있는 다각형을 선택하고 공통 경계 또는 영역 비율에 따라 인접한 다각형에 병합 할 수 있습니다. 사용해보십시오!
ArcGIS에는 참조하는 것과 같은 데이터의 간격을 식별하고 수정하는 데 도움 이되는 토폴로지 규칙 이 있습니다. 토폴로지 규칙을 생성 하려면 ArcEditor 또는 ArcInfo 라이센스 가 필요하며 피쳐 클래스를 개인 또는 파일 지오 데이터베이스의 피쳐 데이터 세트에 저장해야합니다.
" 갭이 없어야 함 "규칙 을 구현하고 싶을 것 입니다. 필요한 것으로 생각되는 모든 규칙을 사용하여 규칙베이스를 작성하면 데이터의 모든 오류를 식별하는 토폴로지의 유효성을 검증하려고합니다.
그런 다음 Error Inspector 및 Fix Topology Errors Tool 을 사용하여 수정할 오류 및 수정 방법을 개별적으로 또는 대량으로 선택할 수 있습니다 (예 : 빈 공간을 채우거나 근처에있는 큰 다각형과 병합 할 새 다각형 만들기) .
글쎄, 나는이 문제를 해결하기 위해 재귀 스냅을 실행하는 PostGIS 기능 (QGIS에서 직접 사용)을 사용하고 있습니다. 결과는 매우 좋으며 최상의 결과를 얻으려면 공차 값에 대한 좋은 즐거움이 필요합니다. 시도 할 의향이 있다면 확인하십시오 (제 경우에는 도형이 모두 멀티이므로 내 실행의 st_multi).
CREATE OR REPLACE FUNCTION dsgsnap(tabela text, snap float) RETURNS void AS
$BODY$
DECLARE
id int;
BEGIN
FOR id in execute('select id from '||tabela)
LOOP
EXECUTE
'update '||tabela||' as classe set geom = st_multi(res.geom)
from
(
select st_snap(a.geom, st_collect(b.geom), '||snap||') as geom, a.id as id
from '||tabela||' a, '||tabela||' b
where a.id != b.id and a.id = '||id||'
group by a.id, a.geom
) as res
where res.id = classe.id';
END LOOP;
RETURN;
END
$BODY$
LANGUAGE plpgsql;
완벽한 솔루션은 아니지만이 두 가지 중 하나가 대부분의 경우 저에게 효과적입니다.
QGIS에서 레이어를 GEOJSON 형식으로 저장하십시오. 그러나 저장하기 전에 "다른 이름으로 레이어 저장"대화 상자에서 좌표 정밀도를 3으로 설정하십시오 (기본값은 15). 이것은 서로 매우 가까운 정점을 통합하는 효과가 있습니다.
Mapshaper로 이동 하여 파일을 업로드 한 후 "simplify"를 누르십시오. 왼쪽 상단 모서리에 몇 개의 선 교차점이 있는지 알려주고이를 수정할 수있는 옵션이 제공됩니다. 이 수정 프로그램은 약 반 시간 동안 작동합니다.
나는 그것을 사용하지 않은,하지만 ET Geowizards 는 ArcView 수준 라이센스 (일명는 ArcGIS 표준)에 많은 ArcEditor 및 ArcInfo에 만 처리 도구를 제공합니다,가있다 마법사를 제거 하는 이웃 다각형으로 병합하여 원치 않는 다각형 (슬리버)을 삭제한다 "또는 을 삭제 " . 마법사 툴킷은 $ 250 USD ( pricelist ) 를 다시 설정합니다 .
나는 같은 문제에 직면했다.이 도구를 탐색함으로써 논리를 알지 못하더라도 상당히 쉽게 정착했다. ! [도구에서 데이터 관리 도구 상자로 이동하여 피쳐 클래스로 이동 한 후 두 번 클릭하여 통합 스크립트 실행] [1]
스크립트 창에서 문제가있는 피쳐 클래스를 선택하고 XY 허용 오차에서 측정 도구를 사용하여 여러 지점에서 거리를 측정하여 값을 추가하고 평균값을 허용 오차 환경에서 해당 값을 넣고 문제를 해결하십시오. 지금은 아니지만 약 90 %의 정확도로 해결되었습니다. ! [여기에 이미지 설명 입력] [2]
위의 답변에 설명 된 다른 모든 방법을 시도했지만 인접한 다각형 사이의 간격을 자동으로 수정하는 것은 어렵고 번거로운 작업이었습니다.