답변:
여기 또 다른 방법이 있습니다. 이 방법에는 각 클래스에서 표현식이있는 하나의 레이어를 사용하는 것이 포함됩니다. 논리적 표현이 포함되어 있기 때문에이 방법을 사용하는 것이 좀 더 비용이 많이 들지만 실제로 부하가 큰 상황에 도달하지 않으면 차이를 느끼지 못할 수 있습니다.
각 클래스는 두 부분으로 표현됩니다. 피처를 그리려면 표현식의 두 부분이 모두 참이어야합니다. 표현식의 첫 번째 부분은 셰이프 파일의 속성을 기반으로 해당 클래스에 포함되어야하는 기능을 선택합니다. 표현식의 두 번째 부분은 url을 통해 전달 된 변수의 값을 평가합니다. URL에서 변수의 이름을 지정하는 것은 중요하지 않으며 ( 'layer'와 같은 예약어를 사용하지 마십시오) 식의 변수 이름과 일치해야합니다.
샘플 레이어는 다음과 같습니다.
LAYER
NAME "watersheds"
STATUS DEFAULT
DATA 'majclip'
TYPE POLYGON
CLASS
NAME "water"
EXPRESSION ([MAJOR] < 42 AND '%wanted%' = 'water')
STYLE
COLOR 0 0 255
END
END
CLASS
NAME "wood"
EXPRESSION ([MAJOR] >= 42 AND '%wanted%' = 'wood')
STYLE
COLOR 0 255 0
END
END
END
물 기능 만 그리려면 다음과 같은 URL 요청을 사용합니다. http : //localhost/cgi-bin/mapserv.exe? map = / ms4w / apps / mymapfile.map & mode = map & wanted = wood
이것이 목표를 달성하는 세 번째 유효한 방법이므로 목표가 무엇인지 생각하고 싶을 것입니다. 데이터가 자주 변경되면이 옵션을 사용하십시오. 데이터가 자주 변경되지 않으면 개인적으로 두 개의 레이어를 사용합니다. 성능이 향상되면 토지 사용 유형별로 셰이프 파일을 여러 셰이프 파일로 분할 할 수도 있습니다. 레이어 필터는 매우 효율적이지 않을 수 있습니다. 웹 매핑을 사용하면 데이터를 사전 최적화할수록 좋습니다.