다양한 JavaScript 매핑 라이브러리를 비교하십니까?


138

웹 기반 매핑 시스템에서 작업하고 있으며 사용할 라이브러리를 파악하려고합니다.

다음은 사용 가능한 라이브러리를 비교하는 링크입니다.

여기에 이미지 설명을 입력하십시오

지금까지 라이브러리 목록 :

  • 구글지도
  • 마이크로 소프트 버추얼 어스
  • MapQuest
  • 리플렛 - "작고 빠르며 새롭고 더 간단한 설명은 기능이 적고 테스트가 덜한 것으로 읽을 수 있습니다." -Geographika (아래 참조)
  • JavaScript 용 ArcGIS API -ArcGIS Server와 가장 잘 작동합니다 (아래 참조). Google지도Bing지도 확장 프로그램도 제공되므로 ESRI API를 Google / Bing지도와 함께 사용할 수 있습니다 (대부분의 라이브러리에 해당됨).
  • 야후 맵 API
  • 미쉐린을 통해
  • OpenLayers- 광범위한 문서 및 다양한 기능과 다양한 맵 공급자를 사용할 수있는 기능.
  • Mapquery -MapQuery가 출시되었으며 이제 유용한 문서 가 있습니다. OpenLayers와 jQuery를 결합하는 데 매우 가치있는 목표가 있습니다. OpenLayers + jQuery의 아이디어에 특히 관심이 있거나 JavaScript 맵핑 라이브러리에 기여하고 싶다면 참여하고 노력하십시오. 그러나 최종 사용자가되고 싶거나이 영역에 익숙하지 않은 사용자에게는 적합하지 않을 수 있습니다.
  • 맵 트랙션 -특히 여러베이스 맵 공급자와 함께 작업하는 것이 매우 간단합니다. 그러나 여전히 진행중인 작업이며 설명서와 같이 기능이 부족합니다. (예 : "FeatureCollection"유형의 GeoJSON 객체는 피쳐 수집 객체입니다. " 1 월부터.
  • deCarta- 모바일 및 데스크톱 자바 스크립트가 있습니다. 첫 번째는 HTML5 / CSS3를 준수하고 두 번째는 더 많은 브라우저 호환성을 갖습니다. 소스 코드가 제공되었습니다. 상용 API에 대한 가장 친숙한 개발자 용어. 지도를 브랜딩 할 수 있으며 몇 가지 다른지도 스타일이 있습니다. NAVTEQ 또는 OSM 데이터를 선택할 수 있습니다. 또한 여러 모바일 API가 있습니다. -DeCarta 직원-TheSteve0에 의해 편집 됨
  • Cloudmade
  • 폴리 맵 -여러 소스의 래스터 및 벡터 데이터를 매우 쉽게 합성 할 수 있습니다. 자신 만의 색상, 그룹화 및 상호 작용을 쉽게 추가 할 수 있습니다. 빠르게 실행되고 백그라운드 타일 로딩을 잘 관리하며 Javascript는 30k에 불과합니다. 한 가지 잠재적 단점은 SVG를 사용하므로 MSIE 7 또는 8에서 작동하지 않으며 작동하지 않는다는 것입니다. 다른 모든 브라우저에서 훌륭하게 작동하며 IE9에서 작동해야합니다.
  • 점프 -점프는 자체적으로 작동하는 경량 맵 라이브러리로 OpenLayers 또는 GoogleMaps API의 래퍼가 아닙니다. 현재 개발 중이지만 많은 필수 기능이 잘 작동합니다.
  • ModestMaps -Mapbox 및 TileMill 제조업체의 더 작고 더 빠르고 새로운 JS 매핑 라이브러리입니다.
  • Mapiator

OpenLayers는 현재 사용중인 것입니다. 그것으로 많은 것을 할 수 있으며 대부분의 데이터 유형을 지원합니다. 그러나 모든 것이 최고는 아닙니다. 예를 들어, Leaflet은 이미지 페이딩 및 기타 시각적 조정으로 여러면에서 더 매끄럽게 보입니다. jQuery를 사용하는 경우 jQuery와 OpenLayers의 조합과 같은 MapQuery를 확인할 수 있습니다.

답변:


93

이 질문은 커뮤니티 위키 및 위키 잠김으로 변환되었습니다. 답변 목록을 찾는 질문의 예이므로 폐쇄되지 않도록하기 위해 인기가있는 것으로 보입니다. 특수한 경우로 취급해야하며이 사이트 또는 모든 Stack Exchange 사이트에서 권장되는 질문 유형으로 간주되어서는 안되지만 더 많은 콘텐츠를 제공하려면이 답변을 편집하여 자유롭게 수행하십시오. .


단일 기능 매핑 앱을 만드는 GIS가 아닌 백그라운드 개발자의 경우 Leaflet (현재 MapBox에서 지원됨)을 권장합니다. 사용하기 쉽고 작습니다. 더 많은 기능은 다양한 품질과 지원의 플러그인에 의존합니다.

GIS 온라인 유형 응용 프로그램 (OpenLayers3 사용)은 단일 라이브러리에 모든 데이터 소스, 컨트롤 등을 포함합니다. 간단한 매핑 앱에도 사용할 수 있으므로 믹스가 있으면 모든 것에 사용합니다.

Google은 여전히 ​​라이브러리 / 데이터 조합을 보유하고 있습니다 (예 : 다른 곳에서는 StreetView를 사용할 수 없음).

Esri에는 GUI 웹 앱 빌더가 있으며 아래에 언급 된 바와 같이 스택을 이미 사용하는 경우 왜 복잡합니까?

상용 API (Google, Bing, Yahoo)

상업용 API를 사용하면 공급자가 API 또는 서비스 약관을 변경 한 내용을 자유롭게 사용할 수 있습니다. 예를 들어 Google지도를 사용하는 지역 정부 포털에서 갑자기 광고가 갑자기 나타나면 어떻게됩니까? 인트라넷 사이트에 JavaScript Google Maps 코드를 재사용 하시겠습니까? 라이센스 비용 1 만 달러를 지불해야합니다.

Microsoft는 종종 서비스에 대해보다 정의되고 고정 된 용어를 사용하므로 (지불되는 경우) 여기에 위험이 적을 수 있습니다.

트위터에 대한 최근의 반발 은 개발자들에게 API가 바뀌는 좋은 예입니다. 서비스 비용을 지불하지 않으면 귀하 (또는 귀하의 시스템)가 판매되는 것입니다.

Google 2011 년 10 월부터지도 사용 요금청구 하기 시작했습니다 .

에스리

Esri 스택을 사용하는 경우 다른 사람들이 언급했듯이 ArcGIS API for JavaScript는 의심 할 여지없이 잘 작동합니다. GIS 배경에서 나온 Esri는 아마도 "네오 지리"웹 거인보다 전통적인 GIS 작업과 기능에 대해 더 많이 생각했을 것입니다 (단 의견이나 느낌 일뿐입니다).

OpenLayers는 ArcGIS REST 레이어를 기본적으로 지원하며 , ESRI 기반이 아닌 웹 사이트에서 코드를 재사용하려면 오픈 API가 가장 적합합니다.

OpenLayers 사용 ...

개발자가 왜 OpenLayers 이외의 API를 사용하는지 생각할 수 없습니다. 오픈 소스 프로젝트는 관련 오픈 소스 프로젝트로 이어 지므로 GeoExt 라이브러리 , MapQueryGeoPrisma 와 같은 재사용 가능한 구성 요소가 풍부 합니다.

프로젝트가 오픈 소스이기 때문에 상업적으로 동등한 것보다 자동으로 나아지지는 않지만 OpenLayers API는이 경우 상업 경쟁과 소스의 작동 방식, 단위 테스트, 스크립트 작성 등은 그 위에 새로운 기능을 쉽게 빌드 할 수 있음을 의미합니다.

복잡성, 스타일 및 크기와 관련하여 OpenLayers에 대한 최근 비판 이있었습니다 . 크리스토퍼 슈미트 (Christopher Schmidt)는 OpenLayers의 주요 개발자 중 한 사람에 의해 여기여기 에 반론이 제기되었습니다 .

간단한 오픈 소스 매핑 API가 필요한 경우 Cloudmade 's Leaflet을 살펴보십시오 .

더 작고, 빠르며, 새롭고 더 간단한 주석은 기능이 적고 테스트가 적은 것으로 읽을 수 있습니다 .

LeafletOpenLayers에 대한 API 문서를 스캔하십시오 . 후자는 WFS 계층, 편집 도구 및 SLD 지원과 같은 항목을 포함합니다. 또한 많은 다른 환경에서 테스트되었으며 IE6에서 작동합니다 (정부 및 지역 기관 사용자 허용).

공간 데이터를보다 간단하게 표시하기 위해 Leaflet은 이상적이고 시작하기가 쉽습니다. 그러나 더 풍부한 기능을 갖춘 GIS 응용 프로그램을 위해 OpenLayers를 고수 할 것입니다.

경고

가능한 한 가지 단점은 상용 공급자 시스템에서 처음으로 새로운 혁신이 나타나는 경우가 많지만 거의 항상 OpenLayers로 필터링됩니다.

마지막으로 다른 하드웨어가 더 적합한 특정 시나리오가 있다고 확신합니다. 맞춤형 하드웨어, 조직의 다른 IT 시스템에 적합하거나 이미 API 내부를 알고 있고 절반의 시간 안에 시스템을 개발할 수있는 경우 .

언급 한 모든 API는 훌륭한 온라인 매핑 시스템을 생성 할 수 있지만, 귀하 또는 회사의 향후 개발 요구 사항에도 적합해야합니다.


50

자바 스크립트 매핑 프론트 리플릿 에 새로운 플레이어가 있습니다 . CloudMade에서 BSD 라이센스로 개발했습니다.

정말 유망 해 보인다.

여기에 이미지 설명을 입력하십시오

( 소스 )


3
와우 이것은 인상적인 도서관 인 것 같습니다. 나는 이것에 대해 몰랐 다니 놀랐다.
dkroy

2
다음은 전단지 및 오픈 레이어 탐색 동작을 비교 한 것 입니다.
dkroy

2
좋은 순서도. 전단지는 실제로 정말 좋습니다.
Mr_Chimp

7
좀 더 복잡한 것들에 Leaflet을 사용하려고 시도한 후에는 OpenLayers 또는 GeoExt에 비해 상당히 제한적임을 인정해야합니다. 설정하기가 쉽고 매우보기 좋지만 상호 작용 측면에서 수행 할 수있는 작업에는 제한이 있습니다. 다시 말하지만, 각각의 장소가 있습니다.
Mr_Chimp

3
업데이트 된 차트 사본 (2012 년 1 월부터)은 geotux.tuxfamily.org/index.php/en/geo-blogs/item/…
Will.

35

나는 Google Maps / arcgis api 프로젝트를 가지고 있었고 약 1 년 전에 OpenLayers를 사용하기로 결정했습니다. 내가 함께 일할수록 더 좋아했기 때문에 마이그레이션하기로 결정했습니다. 내 코드 전체에서 30-100 줄의 Google 코드를 1-3 줄로 반복해서 줄였습니다. OpenLayers는 내가하고 싶었던 것에 대한 기능을 가지고 있었고 Google지도를 위해 수동으로 코딩해야했기 때문입니다.


2
전부다 괜찮아. 입력 해 주셔서 감사합니다! 나는 이것에 대한 정답이 확실하지 않으므로 의견과 일화가 유용합니다.
Mr_Chimp

2
+1 마커로 가득 찬 손 이상을 표시하려면 항상 Google지도에서 OpenLayers를 선택했습니다.
underdark

20

CartoDB 는 PostGIS에서 지리 공간 데이터를 분석, 시각화 및 공유하기위한 도구입니다. SQL API 계층을 제공하는 오픈 소스 지리 공간 데이터베이스 플랫폼입니다. 이를 통해 개발자는 지형 공간 목적에 최적화 된 클라우드 PostrgreSQL + OpenGIS 데이터베이스에 쿼리 할 수 ​​있습니다.

여기에 이미지 설명을 입력하십시오



12

간단하고 구체적이며 일반적인 작업을 수행하는 데 필요한 코드를 강조 표시 및 메모와 비교합니다.

  • MapQuest
  • 구글지도
  • 오비
  • 에스리
  • 오픈 레이어
  • jQuery 지역

여기 : http://trippingthebits.com/geopres/

이 게시물은 jQuery Geo에서 발표 한 프레젠테이션에 대한 것입니다.이 목록은 슬프게도 누락되었습니다.


좋은 기사입니다. 나는 당신의 색상 코딩을 좋아합니다! 아주 좋은 생각입니다.
Mr_Chimp

jQuery Geo FTW!
Sameer

1
@SameerAlibhai 감사합니다! 출시 후보 1을 곧 공개 할 예정입니다.
ryanttb

11

브라우저에서 지구를 시각화하고 싶습니다 . 세슘 은 좋은 것입니다. (플러그인없이 작동하지만 브라우저에는 WebGL 지원이 필요함)

3D, 2D 및 2.5D보기 표시 가능

3D, 2D 및 2.5D를 지원하는 세슘

다른 래스터 / 벡터 형식 (KML 등) 지원

Differentnet 래스터 / 벡터 데이터 지원

카메라 및 카메라 비행 무료 제어

카메라 제어

... 및 (현대) 브라우저 내의 모든 것.


2
와우, 이것은 정말 멋진 프로젝트입니다! :)
Krystian

1
그렇다면 Cesium이 표준 WFS (Web Feature Service)를 지원하지 않는 이유를 설명해 주시겠습니까? 나에게는 매우 강력한 시청자이지만 GIS 시스템은 전혀 아닙니다.
Web-GIS 기업가

11

나는 완전한 비교를 할 수는 없지만 Polymaps로 세 가지 다른 작은 프로젝트를 수행했으며 그것에 대해 언급 할 수 있습니다. 주요 장점은 여러 소스의 래스터 및 벡터 데이터를 매우 쉽게 합성 할 수 있다는 것입니다. 특히 자신 만의 색상, 그룹화 및 상호 작용을 쉽게 추가 할 수 있도록 모든 요구 사항을 충족 할 수 있습니다. 폴리 맵도 매우 효율적입니다. 빠르게 실행되고 백그라운드 타일 로딩을 잘 관리하며 Javascript는 30k에 불과합니다.

Polymaps의 주요 단점은 SVG를 사용한다는 것입니다. 이는 MSIE 7 또는 8에서 작동하지 않으며 작동하지 않는다는 것을 의미합니다. 다른 모든 브라우저에서는 훌륭하게 작동하며 IE9에서는 작동해야하지만 얼마나 잘 테스트되었는지는 확실하지 않습니다. SVG는 또한 강점입니다. 프로그래밍이 쉽고 렌더링이 훌륭해 보입니다. 특히 벡터 및 래스터 피처를 작은 단위로 스케일링합니다.

라이브러리에 대한 한 가지주의 사항 : Google 래스터 타일을베이스 맵으로 사용하려면 Javascript 라이브러리를 사용해야합니다. OpenStreetMap 등에는 라이브러리를 선택할 수있는 훨씬 더 많은 라이센스가 있습니다.

(이 답변은 2011 년부터 작성되었으며 많은 부분이 변경되었습니다. 폴리 맵은 더 이상 유지되지 않습니다.이 시점에서 Leaflet이 선호되는 오픈 소스 라이브러리입니다.)


4
내 답변에 대한 업데이트 일뿐입니다. 폴리 맵은 몇 년 동안 개발되지 않았습니다. 여전히 독특한 능력을 가진 흥미로운 라이브러리이지만 새로운 프로젝트에는 사용하지 않을 것입니다. 요즘 저는 Leaflet을 사용하고 있습니다.
Nelson

9

저는지도 제작 대학원생이자 웹 매핑을 처음 접하는 사람이지만 다양한 기술을 비교하고 웹 매핑을 시작하기위한 기본 "방법"가이드를 작성하는 프로젝트를 진행하고 있습니다. 내 분석 은 결코 포괄적이지 않으며, 각 라이브러리와 함께 놀거나 더 노련한 프로그래머의 게시물을 통해 각 라이브러리를 이해하려고 노력했습니다. 의견을 보내 게되어 기쁩니다.


(+1) 커뮤니티에 오신 것을 환영합니다.
whuber


7

Urban Mapping의 Mapfluence 도 혼합되어 있습니다. 웹 기반 지오 서비스를 제공하고 REST로 액세스 할 수 있으며 JavaScript (문서, 튜토리얼이 개선 된) API를 통해 호스팅되는 매핑 플랫폼입니다. 원하는 경우 OL 또는 OL. 우리는 우리 자신의 기본 타일을 렌더링하고 , 주문형 데이터의 방대한 카탈로그를 가지고 있으며, 데이터 및 기타 시각화 쿼리를 지원합니다.

지리 서비스 및 빅 데이터에 대한 Wed의 O'Reilly 웹 세미나에서 지리 서비스에 대한 개요를 확인하십시오.


7

당신은 또한 Geomajas를 볼 수 있습니다 . 이것은 Java로 작성되는 GIS 프레임 워크입니다 (GWT를 사용하는 Java 클라이언트 포함). 그러나 현재 JavaScript로 완전한 클라이언트 측 API를 제공하기위한 플러그인이 진행 중입니다. 아직 안정적이지는 않지만 볼만한 가치가 있습니다. Geomajas를 사용하면 백엔드와 클라이언트를 강력하게 통합 할 수있어 서버로 작업을 쉽게 오프로드하고 특히 보안을 위해 추가 할 수있는 등 몇 가지 이점이 있습니다.



4

데이터 시각화 라이브러리를 찾고 있다면 Highcharts (현재 포함 된 소프트웨어 개발자) 의 사람들로부터 Highmaps를 확인하십시오 . 비상업적 용도로는 무료이며, 모바일 브라우저 (풀 터치 지원) 및 IE6까지의 오래된 IE에서 잘 작동합니다. 드릴 다운 및 풍부한 툴팁과 같은 고급 동적 기능을 지원합니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오



1
충분히 공정하게 편집했습니다.
Oystein

3

JavaScript 맵핑 라이브러리에서 원하는 기능을 비교하는 흥미로운 방법론을 찾을 수 있습니다 (이 사용 사례에 국한되지 않음) Richard Donohue & al.에 의해 NACIS 2012 이벤트에서 발표되었습니다 . . 흥미로운 부분은 목적과 필요한 기능에 따라 분류하는 방법에 관한 것입니다.



2

당신은 또한 헤론 을 고려할 수 있습니다 . Ext와 열린 레이어를 기반으로하며 사용자 정의 할 수있는 많은 템플릿이 있습니다.

또 다른 잠재적 후보는 GeoJS 입니다.

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