서버 측에서 제공되는 KML에서 일부 윤곽선을 플로팅합니다. 열린 레이어에서 윤곽 레이블 지정 3.17.1
내 현재의 접근 방식
지도 및 사용의 각 가장자리 산책하는 것입니다 : 내가 뭘하려는 아래의보기에 따라, 뷰포트의 가장자리 근처 각 윤곽에 대한 레이블을 추가 할 것입니다 forEachFeatureAtPixel을 사용하여 [x, y]에 윤곽선/지형지 물이 있는지 확인합니다. 윤곽선이 발견되면 레이블은 현재 픽셀에 상대적으로 추가되고 형상의 "hasLabel"속성이 추가되고 true로 설정되어 윤곽/피쳐 당 하나의 레이블 만 추가됩니다.사용자가 확대/축소 또는 변환을 통해 뷰포트를 변경하면 레이블이 제거되고 동일한 프로세스가 다시 실행되어 올바른 위치에 레이블을 추가합니다.
일부 고객은 그려지는 등고선과 레이블이 추가 될 때까지 상당한 지연이 있다고 불평했습니다. - 내 dev 컴퓨터에서는이를 관찰하지 않지만 다소 높은 사양입니다.
제 질문은 레이블의 위치를 더 빨리 계산할 수 있습니까? (일부는 내장 아마도 현재보기를 넘어 확장 모든 기능을 나열 OpenLayers 기능?)
추가 :
https://lqsts.blob.core.windows.net/temp/DayContours.kml : 나는에서 제공 윤곽의 두 세트의 KML 소스를했습니다
https://lqsts.blob.core.windows.net/temp/MinuteContours.kml
이 작업은'jsts' lib를 사용하여 수행 할 수 있습니다. 현재 mbr과 교차점을 교차시키고 교차점에 레이블을 배치하십시오. 물론 이것은 jsts 라이브러리를 포함해야한다는 것을 의미합니다. 컨투어를 생성하기 위해 코드를 제공하면 demostrate를 위해 바이올린을 만들 것입니다. – pavlos
많은 제안에 감사드립니다! 두 가지 윤곽선 (녹색과 파란색)에 대한 KML 소스 파일에 대한 링크를 추가했습니다. JSTS를 사용하여 설정 한 바이올린은 실제로 도움이 될 것입니다. – ProfNimrod