안녕하세요. 민경일이라고 합니다.
저도 예전에 고민해 본 내용이라 답변드려 봅니다~
1.번내용은 polygonsumbolizer와 textsysbolizer를 서로 다른 rule에 정의하고 textsymbolizer쪽 rule에 축척에 따른 제어 구문을 넣으시면 될듯합니다.
2. label갯수가 많은 이유는 클라이언트에서 multi tile로 요청시 각각의 요청이미지마다 label이 표시되는 현상입니다.
몇가지 방법이 있는데...
일단 클라이언트에서 single tile방식으로 요청하면 깔끔히 해결됩니다.^^
만약 꼭 multi tile 방식의 요청을 원하신다면
<TextSymbolizer>
<Geometry>
<ogc:Function name="centroid">
<ogc:PropertyName>the_geom</ogc:PropertyName>
</ogc:Function>
</Geometry>
<Label>
<ogc:PropertyName>nr</ogc:PropertyName>
</Label>
.......
위 붉은색 부분을 sld에 추가하면 폴리곤의 가운데에 하나의 라벨이 뜨게 됩니다.(단점:폴리곤을 많이 확대 하였을때 보고있는 영역이 폴리곤의 중심이 포함되어 있지 않으면 라벨은 보이지 않습니다.)
또 다른 방법은.. geoserver의 meta tiling 기능을 사용하시면 라벨의 중복을 조금이나마 피할수 있습니다.(타일 3*3 영역에 라벨 하나를 표시하게 할수있는.....)
이 문서를 참고 하시면 좋을듯 합니다.
도움이 되었으면 좋겠네요~