2017-12-10 18 views
0

OpenLayers를 사용하는 프로그램이 있으며 기본적으로 사용자가 3 자리 국가 코드를 입력 한 다음 해당 국가를지도에서 선택하려고합니다. 따라서 사용자가 "미국"을 입력하면 미국이지도에서 선택됩니다. OpenLayers를 사용하는 데있어 매우 익숙하지만 ol.interaction.Select를 사용해야합니다. 일반적으로 국가 코드에서 국가를 선택하도록 OpenLayers를 얻는 방법?

+0

폴리곤을 그리기 위해 국가 코드와 국가 경계 좌표가 필요합니다. –

+0

경계, 이름 및 코드 소스 : https://github.com/johan/world.geo.json/blob/master/countries.geo.json?short_path=afdfc39 – dube

답변

0

, 당신이 필요합니다

  1. 벡터 데이터 소스는 국가에 해당하는, 그들의 세 자리 국가 코드에 의해 색인. dube의 대답은 1을 가리키며 OpenLayers는 사이트에 동일한 파일을 가지고있는 것으로 보입니다 here. 편리하게도이 파일은 국가 코드를 기능 ID로 사용하며 벡터 데이터 소스에서 ID로 기능을 조회하는 것은 쉽지 않습니다.
  2. 위의 소스를 포함하는 벡터 레이어가있는 OpenLayers지도.
  3. 선택적으로 이미지 타일이 포함 된지도의 기본 레이어입니다. 적절한 채우기 및 외곽선 스타일을 사용하여 소스가 국가 벡터 인지도 레이어를 사용하여 벡터 데이터 소스를 사용하여 국가 경계를 그리는 경우이 레이어없이이 레이어를 수행 할 수도 있습니다. 그러나 국가 벡터 데이터는 매우 거칠며 맵 타일 (OpenStreetMap, Stamen, Bing, Google 등)이 더 예쁘게 보일 수 있습니다. 특히 사용자가 많이 확대하는 경우 특히 그렇습니다.
  4. 강조 표시를위한 오버레이 레이어. 이것은 사용자가 인식 가능한 국가 코드를 입력 할 때 선택한 국가의 지형지 물을 추가 및 제거하는 채우기 및 외곽선 스타일이 강조된 벡터 레이어 (예 : 빨간색 또는 굵은 글씨, 일부 투명하지 않은 채우기 색상) 일 수 있습니다.

OpenLayers vector-layer 예제에는 필요한 코드의 90 %가 포함되어 있습니다. 마우스 움직임을 보지 않고 사용자가 국가 코드를 입력하는 텍스트 요소의 변경을 감시합니다.

예를 들어 this gist을 참조하십시오.