OpenLayers 또는 전단지를 선택 하시겠습니까? [닫은]


93

OpenLayers v / s Leaflet에서 동료 중 한 명과 토론하고있었습니다. GeoServer 및 PostGIS에 직접 연결해야하는 프로젝트를 빌드하려는 경우 OpenLayers가 훨씬 더 나은 API라고 지적했습니다.

그런 다음 Open Data Kit를 발견했습니다.이 데이터 는 꽤 새롭지 만 Geoserver 및 PostGIS와의 연결 기능이 있습니다.

내 프로젝트 세부 정보는 다음과 같습니다.

  1. 맵 인터페이스를 사용하여 기능 정보를 가져옵니다.
  2. 위도 / 경도를 사용자가지도에서 클릭 한 위치로 가져 와서 래스터에서 기후 데이터를 가져 오는 맞춤형 도구를 만듭니다 (서버의 py 스크립트에 의해 처리됨).
  3. 사용자가 py 스크립트로 전송되는 Excel을 업로드 할 수 있습니다.이 스크립트는 GeoJSON을 반환하여 맵에 벡터 기능을 만듭니다.
  4. 사용자가 벡터 다각형을 만들어 WFS 레이어에서 교차하는 지형지 물을 가져올 수 있습니다.
  5. GeoServer의 PostGIS Datastore에서 레이어를 가져오고 맵에 레이어를 표시합니다.

이제 어느 쪽이 더 나은지 혼란스럽고 Leaflet보다 OpenLayers를 사용하는 것이 더 합리적입니까?


1
프로젝트에 따라 다릅니다.
CaptDragon

1
에이. 프로젝트에 대한 자세한 내용을 제공하여 질문을 개선하십시오. 비. 사용자의 데이터베이스 (postgis)에 대한 직접 연결에 대해 이야기하고 있습니까?
Pablo

그것에 대해 죄송합니다, 내 프로젝트 세부 사항을 업데이트
Sam007


일반적으로 Leaflet은 더 짧고 읽기 쉬운 .js 파일로 이어지기 때문에 Leaflet을 선호합니다. 그러나 OL은 Leaflet이 할 수없는 일을 할 수 있습니다. 더 깊고 자세한 액세스가 허용되기 때문에 동의합니다. 그것은 프로젝트에 달려 있지만 Leaflet에 대해 1 표를 받았습니다.
MartinHvidberg

답변:


87

내 앱에서 OpenLayers와 Leaflet을 모두 사용했습니다. 이 포럼과 행성 인터넷의 다른 주제에서이 주제에 대해 많은 논의가있었습니다. 일반적으로 OpenLayers의 기능과 유연성 대 Leaflet의 단순성에 따라 2 개의 캠프에 속합니다. 누군가가 곧 두 세계의 최고와 결혼하는 "OpenLeaf"이니셔티브를 낳게된다면 놀라지 않을 것입니다!

700K 이상의 Openlayer와 비교할 때 아주 간단한 64K 크기의 Leaflet을 사용하는 Leaflet을 발견했으며 아주 적은 단계만으로 오늘날의 웹 및 모바일 GIS 앱의 신선함과 눈길을 끄는 앱을 만들 수 있습니다. 스택-GeoServer, PostGIS 등은 표준 스택이므로 OpenLayers 또는 Leaflet을 쉽게 통합 할 수 있습니다.

그렇게 말했지만, 나는 여전히 다음과 같은 이유로 OpenLayers 와 함께 갈 것입니다.

  1. OpenLayers 주변에는 TON의 재료가 있습니다. Leaflet보다 훨씬 성숙합니다.
  2. 커밋과 사용자에 대한 비교를 확인하십시오 .
  3. OpenLayers, GeoServer, PostGIS 스택은 FOSS 세계에서 매우 입증되어 확실한 경로로 가고 있습니다.
  4. OpenLayers는 맵 컨트롤 에 더 많은 기능을 제공합니다 .
  5. 전환 및 시각 효과를 만드는 데 조금 더 많은 노력이 필요하지만 OpenLayers에서 수행 할 수 있습니다.

1
또한 모바일 장치는 어떻습니까? 어느 것이 더 적합합니까?
Sam007

1
예. 현재 OpenLayers와 SenchaTouch를 사용하여 모바일 앱을 구축하고 있습니다. Openlayers에는 수많은 모바일 맵 앱이 실행되고 있습니다. 다음은 openlayers.org/dev/examples/?q=mobile 예제 입니다.
Ramesh Elaiyavalli

28

끝까지 전단지. Leaflet이 오픈 소스 타일 기반 브라우저 클라이언트의 진화에 대한 다음 단계 인 것 같습니다. Ka-Map-> OpenLayers-> Leaflet.

리플렛은 사용하기 쉽고 주석에 표시된 내용을 정확하게 수행합니다. OpenLayers는 모든 사람들에게 모든 일을하려고 노력하면서 부풀어 오릅니다. Leaflet은 80 %의 시간이 소요되는 작업의 20 %를 수행합니다.


14
따라서 "Leaflet to all way"가 아니라 "Leaflet on all features가 필요하지 않은 경우 LEAPLE"입니다. 나는 Leaflet이 사용하기가 훨씬 간단하다는 데 동의하지만, 일반적이지 않은 것을 해야하는 경우 OL을 사용해야합니다.
Juan Juan

1
전단지에는 많은 기능이 없습니다. 전단지는 매우 기본적인지도에는 적합하지만 Ramesh Elaiyavalli Ol-3에서 이미 설명한 것처럼 최고이며 사용자 정의 빌드를 사용하여 기능을 선택하여 크기를 줄일 수 있습니다.
Abhijit Gujar

18

webGIS 응용 프로그램에서 Leaflet을 사용했지만 OpenLayers는 Leaflet보다 훨씬 많은 이점을 가지고 있습니다. 예를 들어, 모바일 장치에서 응용 프로그램을 사용하려면 당분간 OpenLayers가 필수입니다.

OpenLayers와 관련된 많은 리소스가 있지만 Leaflet을 사용하여 응용 프로그램을 개발하는 것이 OpenLayers보다 쉽다고 생각합니다 (코드를 읽고 구조를 이해하는 것이 더 쉽습니다). 시간 제한이 있고 Javascript에 대해 약간의 경험이있는 경우 Leaflet을 사용하면 더 빨리 완료 할 수 있습니다. 또는 매우 간단한 응용 프로그램을 개발하려는 경우 처음에는 Leaflet을 훨씬 쉽게 적용 할 수 있습니다.

그러나 Leaflet으로 응용 프로그램을 개발 한 후에는 처음에 OpenLayers를 사용했으면 좋겠다고 말합니다. 응용 프로그램이 복잡해지면 (예 : 데이터베이스에서 복잡한 계층 호출, 강력한 모바일 응용 프로그램 개발 등) Leaflet은 사용자의 능력을 제한하기 시작합니다. 따라서 학습 단계에서 OpenLayers 구조를 이해하고 배우기 위해 조금 더 시간을 투자하면 결국 그만한 가치가 있다고 생각합니다.

프로젝트 세부 사항을 고려할 때;

맵 인터페이스를 사용하여 기능 정보를 가져 오십시오.

Leaflet과 OpenLayers는 완벽하게 그렇게 할 수 있습니다. 여기서 중요한 것은 클릭 이벤트의 좌표를 가져와 서버에 요청을 보내는 것입니다. 요청 링크는 두 응용 프로그램에서 동일합니다.

위도 / 경도를 사용자가지도에서 클릭 한 위치로 가져 와서 래스터에서 기후 데이터를 가져 오는 사용자 정의 도구를 만듭니다 (서버의 py 스크립트가 처리 함).

나는 Leaflet에서 저 자신을 달성했습니다 (저는 기후 데이터라고도합니다). 서버에서 래스터 데이터를 가져 오지 않았지만 여기서 요점은 요청 링크를 만드는 것입니다.이 링크는 두 응용 프로그램 모두에 쉽습니다. 그러나이 단계에서 다각형을 선택하려면 Leaflet에서 약간 어렵습니다.

사용자가 py 스크립트로 전송되는 Excel을 업로드하도록 허용합니다.이 스크립트는 GeoJSON을 반환하여 맵에 벡터 기능을 만듭니다.

Leaflet과 OpenLayers에 대해 거의 동일한 작업 라인입니다. 어느 쪽이 더 낫다고 말할 수 없습니다.

사용자가 벡터 다각형을 만들어 WFS 레이어에서 교차하는 지형지 물을 가져올 수 있습니다.

OpenLayers 편집 기능에 대해서는 전혀 모르지만 Leaflet에는 Leaflet Draw라는 플러그인이 있습니다.이 플러그인은 그리기가 완료된 후 사용하기 쉽고 (Javascript 쪽) 조작 할 수 있습니다. 또한 WFS 서버에서 공간 데이터를 조작하려는 경우 Leaflet은 WFS-T를 지원합니다. OpenLayers가 그보다 낫을 수도 있습니다.

GeoServer의 PostGIS Datastore에서 레이어를 가져오고 맵에 레이어를 표시합니다.

PostGIS 서버를 연결하는 것이 더 쉬워 확실히 OpenLayers가이 작업에 더 좋습니다.

그런데 OpenLayers, GeoServer 및 PostGIS를 포함하는 OpenGeo Suite 라는 애플리케이션 제품군 이 있습니다. 웹 기반 GIS 애플리케이션 개발자가 가진 모든 문제를 해결할 것입니다.


좋은 자세한 답변!
Devdatta Tengshe

3 년 후, Leaflet & mobile devices에 대해 어떻게 생각하십니까? 개선이 있습니까?
Mawg

10

이 프레젠테이션 에서는 두 가지 프레임 워크에 대해 큰 비교가 있습니다 .

리플렛 및 오픈 레이어

다른 기사 에는 다음과 같은 요약이 있습니다.

고객들은 종종 "Map Suite WebAPI Edition으로 최신 웹 앱을 구축 할 때 사용할 수있는 최고의 클라이언트 측 JavaScript 매핑 라이브러리는 무엇입니까?"라는 질문을 자주합니다. 답변은 요구 사항 및 개발 환경 설정에 따라 다릅니다. 두 프레임 워크 모두 잘 문서화되고 휴대 기기에서 제대로 작동하므로 일반적으로 고객이 올바른 결정을 내릴 수 있도록 다음과 같은 질문을합니다.

작성중인 앱의 일부를 매핑하는 것이 얼마나 간단합니까?

매핑 요구 사항이 단순할수록 Leaflet 사용에 더 의존합니다. Leaflet은 기본 맵 타일 소비, 이동 및 확대 / 축소와 같은 가장 일반적인 매핑 작업을 처리하는 환상적인 작업을 수행하며 API는 이해하기 쉽고 사용하기 쉽습니다. 그러나 일반적인 작업을 넘어서고 나면 Leaflet Plugins을 사용해야합니다. 불행히도 존재하지 않는 기능을 찾고있을 수 있습니다.

기능이 많은 기능이 풍부한 응용 프로그램이있는 경우 OpenLayers 3을 사용하는 것이 좋습니다. OpenLayers 3에는 Leaflet의 모든 공통 매핑 기능과 그 이상을 수행 할 수있는 더 크고 복잡한 API가 있습니다. 예를 들어, 응용 프로그램에지도 투영과 관련된 요구 사항이있는 경우 OpenLayers 3을 사용하면 Leaflet을 사용하는 것보다 이러한 요구 사항을보다 쉽게 ​​달성 할 수 있습니다. 물론보다 강력한 API를 사용하면 학습 곡선이 더 가파르므로 프로젝트 이해 관계자에게 견적을 제공 할 때 명심하십시오.

얼마나 많은 JavaScript 코드를 작성 하시겠습니까?

Leaflet은 OpenLayers 3보다 높은 수준의 API이므로 일반적으로 JavaScript 코드를 작성하고 실행하는 데 걸리는 시간이 줄어 듭니다. 그러나 Leaflet이 제공하는 표준 기능에서 벗어나고 싶다면 정확한 요구를 충족시키는 플러그인이 없으면 많은 코드를 작성하게 될 것입니다. 반면, OpenLayers 3은 맵을 초기화하고 설정하기 위해 더 많은 JavaScript 코딩이 필요한 하위 레벨 API입니다. API를 사용하면 맵과 데이터를보다 강력하게 제어 할 수 있으므로 사용자 정의 및 복잡한 요구 사항이있을 때 편리합니다.

요약

마지막으로 Leaflet을 사용하는 것이 가장 좋은 시간과 OpenLayers 3이 승리하는 시간이 있습니다. 매핑 요구 사항이 단순하다면 먼저 Leaflet을 확인하는 것이 가장 좋습니다. 그러나보다 사용자 정의가 가능하고 JavaScript 개발로 더러워지지 않는 매핑 라이브러리를 찾고 있다면 OpenLayers 3에 도달하십시오.

두 라이브러리 모두 장점이 있기 때문에 Product Center를 통해 다운로드하거나 ThinkGeo Wiki에서 볼 수있는 Map Suite WebAPI Edition과 함께 Leaflet 및 OpenLayers 3에 대한 코드 샘플을 포함 시켰습니다. 이 샘플은 두 라이브러리간에 서로 다른 사용자 경험과 코딩 요구 사항을 직접 확인할 수 있으므로 앱에 사용할 클라이언트 측 Javascript 매핑 라이브러리를 결정할 때 유용한 리소스입니다.

에서 http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/


5

방금 새 모바일 프로젝트에 대해이 결정을 받았고 확실한 승자는 OpenLayers입니다. 이 글을 쓰는 시점에서 전단지는 모바일에서 다소 부진했습니다. 이동 / 확대에 대한 전환은 매끄럽지 않고 때때로 혼란 스러웠습니다. 모국어가 부족하기 때문에 OpenLayers를 사용해 보았으며 경험이 훨씬 좋습니다. 여전히 네이티브만큼 좋지는 않지만 확실히 사용 가능하고 실제 옵션입니다.


1
흥미 롭군 모바일 장치에서 Leaflet이 더 가볍고 매끄 럽기를 기대했습니다. 이 경험을 공유해 주셔서 감사합니다.
LarsH

@Christian Fritz-OL3 또는 OL2에 대한 경험이 있습니까?
sfletche

2
@ sfletche 비교는 OL3와 전단지 0.7.3 사이였다
Christian Fritz

3 년 후, Leaflet & mobile devices에 대해 어떻게 생각하십니까? 개선이 있습니까?
Mawg

예, 물론입니다. 우리는 생산에 전단지를 사용하고 모바일에서 아무런 문제도 보지 않습니다.
기독교 프리츠

3

API 문서를 모두 확인하십시오. 나를 OpenLayers위해 광범위한 기능 을 제공하는 것처럼 보이지만 개발 / 디버깅 시간이 더 깁니다.

LeafletOL보다 더 섹시하고 훨씬 더 쉽습니다. 그러나 맵으로 많은 작업을하려면 언젠가 Leaflet아직 구현되지 않은 기능이 필요할 수 있습니다 .

API를 살펴 보는 것이 좋습니다! 오픈 레이어 & 리플렛

또한 당신은 전단지는 동안 그 현재 안정 버전을 고려해야 할 수도 0.5.1있지만 그건 2.12OpenLayers를 위해.

추신 : 모바일 애플리케이션을 개발하고 싶다면에 갈 것 같습니다 Leaflet.


3

OpenLayers 3과 Leaflet의 API를 둘 다 동일한 빌드로 만들어 비교하는 기본 튜토리얼이 있습니다. Astun Technology가 작성했으며 튜토리얼 작업은 다음과 같습니다.

  • OSM 타일이있는 기본 맵
  • 병기 조사 타일이있는 OS-GB 맵
  • 마커가있는 GeoJSON 레이어
    • GeoJSON 레이어 정보
  • WMS 레이어
    • WMS 계층 정보

링크는 다음과 같습니다. https://astuntechnology.github.io/osgis-ol3-leaflet/index.html


스페이스 바로 스크롤이 끊어짐 btw
bugmenot123

3

당신이하려는 일에 달려 있습니다. 전단지는 웹 맵 프로젝트의 80 %에서 더 단순하고 빠릅니다.

이웃을 돌아 다니기 위해 우주선이 필요하지 않은 것과 같은 방식으로 OpenLayers가 너무 복잡하여 특히 간단한 버전 3을 수행하기에는 너무 복잡합니다.

예를 들어, 레이어 선택기를 만들려면 Leaflet에서 5-6 줄의 코드가 필요하지만 OpenLayers 4에서는 처음부터 새로 작성해야합니다. 멋진 도구가 있지만 대부분 사용자 정의 된 레이어 선택기를 원하지 않고 잘 작동하는 레이어 선택기를 원하지 않습니다.

고려해야 할 또 다른 중요한 점은 인터넷과 관련된 대부분의 정보, 자습서 및 토론은 OpenLayers 2에 관한 것입니다. 버전 3은 버전 2와 호환되지 않기 때문에 최신 버전이 아닙니다. 현재 버전 4입니다. 버전 2 더 복잡한 기능과 함께 레이어 선택기, 팝업 등과 같은 간단한 것들이 많았습니다. 그러나 어떤 이유로 든 그들은 복잡하고 강력한 시스템으로 발전하기 위해 이런 종류의 것들을 삭제했습니다. 또한 2012 년보다 Leaflet에 대한 정보가 훨씬 많아졌으며보다 성숙한 기술입니다.

결론적으로, 자동차 나 우주선이 필요한지 자문 해보십시오. 당신은 자동차로 날지 않을 것이지만, 쇼핑하러 우주선을 운전하는 것은 정말 복잡 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.