OpenLayers 및 Google지도? [닫은]


169

Google지도를 몇 번 사용했지만 OpenLayers가 궁금 합니다.
코딩을 시작하기 전에 몇 가지 질문이 있습니다.

  • Google지도 대신 OpenLayers를 사용하는 이유는 무엇입니까?
    • 어쨌든 OSS 라이센스를 제외하고
    • OpenLayers를 절대 사용하지 말 것을 권장하는 상황이 발생 했습니까?
    • 스택 오버플로에서 "OpenLayers"에 대한 검색을 수행했습니다 . 많은 답변이 없습니다. 이 솔루션이 많이 사용되지 않는다는 의미입니까? 프로젝트의 장기적인 생존 가능성에 문제가 될 수 있습니까?
  • 이미 OpenLayers를 사용한 적이있는 분들을 위해 : 일반적으로 발생할 수있는 함정 / 문제가 있습니까?
    • JavaScript 프레임 워크를 사용하는 것은 어떻습니까? 프로토 타입을 사용하는 것을 보았고 프로토 타입을 알고 있으므로 괜찮습니다. 그러나 MooTools 와 같은 다른 것을 사용하는 것은 어떻습니까? (BTW는 프로토 타입과 호환되지 않습니다)
    • 속도 및 성능 관련 문제가 있습니까? 응용 프로그램이 반응 형이어야하고지도가 표시되기까지 몇 시간을 기다릴 수 없습니다.
  • 여러 곳에서 사용할 수있는지도가 있습니까, 아니면 많은지도가 없습니까?
    • 즉, 저는 프랑스에 있으며 적어도 대도시에서 일하기 위해서는 신청서가 필요합니다 ... 괜찮을까요?
    • 그렇지 않은 경우 OpenLayer의 레이어 및 시각화를 쉽게 찾아 통합 할 수 있습니까?
  • 도로를 표시 할 API가 있습니까?
    • 예를 들어, 단방향 도로 만 표시합니다.
    • 그렇다면 어떻게 할 수 있습니까? 도로 정보가 포함 된 파일이 있어야하고지도에 직접 표시해야합니까?
  • OpenLayers에 대한 좋은 자습서를 알고 있습니까?

나는 그것을 아직 시도하지 않았으며, 그것들은 단지 파란 질문에서 벗어났습니다 ...


호기심에서 철학적 이유를 제외하고 왜 "OSS 라이센스"가 OpenLayers에 유리한 점이 되었습니까? Google의 라이센스를 통해 원하는 것을 무료로 할 수 있다고 가정하면 왜 결정을 좌우할까요?
Mark

7
@Mark Google 라이센스에 문제가 있습니다. IANAL은 Google지도에 데이터를 표시하면 Google이 귀하의 데이터를 복사, 수정, 변환 및 재배포 할 수있는 무제한 라이센스를 제공한다는 것을 이해합니다. 예를 들어 영국 병기 조사 GIS 제품에서 파생 된 데이터를 Google지도에 표시 하는 것은 불법 입니다. OSS의 또 다른 장점은 OpenLayers가 한 조직의 변덕에 종속되지 않는다는 것입니다. 실질적으로, 구글지도를 미래에 지원할 수있는 Google의 상식 (및 돈, 사업상의 이유)을 믿을 수 있습니다
MarkJ

1
이 기사는 다소 유용 할 수 있습니다. EveryBlock-지도 정보 : blog.everyblock.com/2008/feb/18/maps 목록 따로-지도를 제어하십시오 (또한 EveryBlock에서) alistapart.com/articles/takecontrolofyourmaps
mg1075

8
Google지도는 완전 무료가 아닙니다 ( google.com/support/forum/p/maps/… ). 라이센스는 사용 방법에 따라 다릅니다.
Mo.

SO에 대한 답변을 찾을 수 없으면 모든 지리에 대한 GIS.SE 사이트를 확인하는 것이 좋습니다.
Roy

답변:


158

이것들은 정말 좋은 질문입니다! 저는 전문적인 OpenLayers 개발자이자 팬이므로 이러한 관점에서 귀하의 질문을 해결해 드리겠습니다.

Google지도 대신 OpenLayers를 사용하는 이유는 무엇입니까?

  • 융통성 : 귀하는 특정지도 제공 업체 또는 기술과 관련이 없습니다. 언제든지 변경할 수 있으며 전체 코드를 다시 작성할 필요는 없습니다. Google, Yahoo, Microsoft, WMS, ArcGIS Server, MapServer 등이 모두 기본적으로 지원됩니다.
  • 벡터 지원 : 점, 폴리 라인 및 다각형을 더 잘 지원합니다.
  • 제어 : 필요한 새로운 기능을 추가 할 수 있습니다. 필자는 개인적으로 OpenLayers 용 플러그인 3 개를 작성했으며 그 중 2 개는 소스의 일부일 것입니다.
  • 디버깅 : 소스 코드를 단계별로 볼 수있을 때 훨씬 쉽게 디버깅 할 수 있습니다!

나는 프로젝트의 장기적인 생존 가능성에 대해 전혀 걱정하지 않을 것입니다. 최고의 오픈 소스 클라이언트 측 매핑 라이브러리입니다.

발생할 수있는 일반적인 함정 / 문제가 있습니까?

  • 내가 겪었던 가장 큰 함정은 Web Mercator (Google) 프로젝션과 협력하는 것입니다. Google, Yahoo 및 Microsoft 기본 맵을 사용하여 WGS 84 와 같이 일반적이고 실제 투영되는 벡터 데이터를 OpenLayers 맵에 표시하는 것은 쉽지 않습니다. 예는 당신의 친구입니다.

자바 스크립트 프레임 워크 호환성

  • 모든 작업에 jQuery 프레임 워크를 사용하는데, OpenLayers 다음에 jQuery를 참조하는 것이 유일한 문제였습니다. 그 외에는 원활한 항해였습니다.
  • 성능이 훌륭합니다! 유일한 문제는 맵 서버에 있거나 너무 많은 벡터를 맵에 추가하는 것입니다.

여러 곳에서 사용할 수있는지도가 있습니까?

  • 내가 말했듯이 전 세계 어디에서나 거의 모든 소스에서베이스 맵을 사용할 수 있습니다.

도로를 표시 할 API가 있습니까?

  • CloudMade를 확인하겠습니다! 는 OpenStreetMap 프로젝트를 맵 타일 서비스로 변환하고 사용자 정의 스타일을 허용합니다. 나는 당신이 (예를 들어) 일방 통행로를 특정 방식으로 스타일링 할 수 있다고 생각합니다. CloudMade 개발자 영역 .

OpenLayers에 대한 좋은 자습서를 알고 있습니까?

이것이 유용하기를 바랍니다. 그리고 질문이 있으시면 Stack Overflow를 사용하고 있습니다!


5
안녕하세요! 이 답변에 감사드립니다. 실제로 유용합니다! 확실히 흥미로운 점이 몇 가지 있습니다 (더 나은 벡터 지원은 제가 생각하고있는 프로젝트에 유용 할 것입니다. 어쩌면 나는 언젠가 다른 질문을 할 것입니다 : 나는 아직 OL로 작업을 시작하지 않았지만 (이 질문은 상당히 "예비"였습니다 ^^), 시간이 올 것입니다.
파스칼 마틴

5
+1. 이 의견을 입력하지 않으려했지만 스스로 도울 수 없습니다. WGS84는 프로젝션이 아닙니다. (이 물건을 배우려고 노력할 가치가 있습니다. 나는 고통스럽게 약간의 GIS를 집어 들었고 실제로지도 물건
MarkJ

1
WGS84는 지리적 좌표 시스템입니다 (타원체에 위도 / 경도 포인트를 표시하는 데 사용됨). 웹 메르카토르는 사실상 사실상 웹 프로젝션입니다.
Roy

35

반드시 OpenLayers 또는 Google Maps의 문제는 아닙니다. OpenLayers에서지도 배경으로 Google지도를 사용할 수 있습니다. 좀 더 구체적인 답변 :

왜 OpenLayers인가?

  • OpenLayers는 서로 다른 소스 (Google지도 배경, WMS 오버레이, KML 또는 GML 파일의 벡터 데이터 또는 WFS 등)의지도를 결합 할 수 있습니다.
  • Google지도보다 OpenLayers 스타일을 훨씬 더 많이 지정할 수 있습니다
  • 오픈 소스, 디버깅 할 때 소스 코드를 확인할 수 있습니다
  • 지도에서 높은 정밀도가 필요한 경우 Google지도보다는 적합한지도 서버 백엔드와 함께 OpenLayers를 사용하여 더 나은지도 투영을 얻으십시오 (Google지도는 지구가 완벽한 구라고 가정합니다)

함정

  • 크로스 사이트 스크립팅 제한으로 인해 다른 서버에서 벡터 (WFS) 데이터를 사용하려면 프록시가 필요합니다

공연

  • 지도 백엔드의 속도에 주로 의존
  • 많은 벡터 기능을 표시하려면 (제한은 브라우저에 따라 다르지만 한 번에 200 이상이라고 함) 시간이 걸리지 만 OpenLayers의 문제보다 브라우저가 더 중요합니다.

자바 스크립트 프레임 워크

  • 예를 들어 ExtJS + OpenLayers 인 GeoExt를 살펴보십시오.

사용 가능한지도

  • OpenLayers에는 맵 백엔드가 제공되지 않습니다. Google Maps, Yahoo Maps, MS Virtual Earth 등을 사용하거나 WMS 및 WFS 서비스를 사용할 수 있습니다.

좋은 답변; 이 모든 정보에 감사드립니다! 아직 세부 사항을 모르지만 자체 서버의 일부 데이터를 사용해야 할 수도 있으므로 특히 여러 백엔드를 통합 할 수있는 능력을 갖추어 모든 것이 정상이어야합니다 (올바르게 이해하면 ^^ 테스트 할 기회가 있습니다) 것을 며칠에, 나는 희망 ;-))
파스칼 MARTIN

1
@Pascal, 답변이 도움이되어 기쁩니다. OpenLayers 커뮤니티가 활발하고 메일 링리스트가 매우 유용하다고 덧붙일 수 있습니다.
Nils Weinander

개발자 예제 페이지에서 다루지 않은 작업이 있으면 Google지도에서 수행 할 수 없습니다. 예를 들어, 크로스 사이트 스크립팅조차도 프록시가 다루지 않아도됩니다. openlayers.org/dev/examples/cross-origin.html
Glenn Plas

23

나는 OpenLayers 사용자들로부터 많은 존재를 보지 못했지만 거기에 있습니다. 메일 링리스트 OpenLayers은 꽤 활성화되어 (나는에있어 사용자개발자 어디서나 50 ~ 100 이메일 다양한 일을 논의 날로부터 참조하십시오. 당신은 너무 그 링크에서 목록을 검색 할 수 있습니다.).

모든 질문에 대답 할 수는 없지만 OpenLayers와 Google지도는 상호 배타적이지 않습니다. OpenLayers는 자바 스크립트 라이브러리이며이를 사용하여 Google지도와 상호 작용할 수 있습니다. 구글 맵을 사용하는 OpenLayers 예제를 확인하십시오 . 다음은 OpenLayers 기본 예제 페이지 입니다.


그 답변에 감사드립니다! 프로젝트 작업을 시작하기 전에 메일 링리스트가 매우 활발한 것을 보게되어 기쁘다 ^^
Pascal MARTIN

13

여기에서 완전히 정립되지 않은 한 가지 점은 OpenLayers를 사용하면 다음과 같이 Google의지도 API 서비스 약관에 대한 다양한 제한을 피할 수 있다는 것입니다.

  • 액세스하려면 결제가 필요한 사이트 섹션이나 일반인이 가입 할 수없는 개인 사이트 (예 : 회사 인트라넷)에서만 Google지도를 합법적으로 사용할 수 없습니다. (IANAL, 서비스 약관 9.1FAQ 참조 )

  • 오프라인 애플리케이션 (즉, 타일이 컴퓨터에서 제공되는 위치)에 Google API를 합법적으로 (또는 실제로) 사용할 수 없습니다. 법적 제한이 없더라도 Google은 기술적으로 매우 어려운 반면 OpenLayers는이를 쉽게 해줍니다.

  • Google은 불쾌하다고 판단되는 콘텐츠가 포함 된지도를 표시하는 경우 API에 대한 액세스를 종료 할 권리가 있습니다. FAQ에 제시된 예 는 불법 약물지도이며,이 제한이 적용될 수있는 회색 부분을 잘 이해할 수 있습니다.

자세한 내용은 이 FAQ서비스 약관 을 참조하십시오.

최근에 OpenLayers를 사용하기 시작한 오랜 Google Maps 개발자로서 Google Maps에는 OpenLayers보다 더 나은 문서, 더 큰 사용자 커뮤니티 및보다 명확하고 안정적인 API가 있다고 생각합니다. 따라서 어딘가에서 절충해야합니다.


"귀하가 지불해야하는 사이트의 섹션 또는 일반인이 가입 할 수없는 개인 사이트 (예 : 회사 인트라넷)에는 법적으로 Google지도를 사용할 수 없습니다." 맞지 않습니다. 대부분의 사용자가 지불하지 않고 사이트와지도를 사용하는 한 사이트의 유료 섹션에서 Google지도를 사용할 수 있습니다. 예 : 부동산 웹 사이트. 포스터는 집을 표시하기 위해 비용을 지불해야하지만 대다수의 사용자는 비용을 지불하지 않고 사이트를 탐색 할 수 있습니다. 이 경우 둘 다 Google지도에 액세스 할 수 있습니다.
Craig

감사 합니다. 지불이 필요한 섹션 에서만 API를 사용할 수 없습니다 . 게시물을 업데이트하고이 문제를 해결하기 위해 더 많은 링크를 추가했습니다.
nrabinowitz

OpenLayers는 내부적으로 Google Maps API를 사용하므로 동일한 라이센스가 적용됩니다. osgeo-org.1560.x6.nabble.com/…
알프레도 오소리오

@AlfredoOsorio-예, IFF는 Google 레이어를 사용합니다. 다른 타일 소스가 많이 있습니다.
nrabinowitz

12

실제로지도를 사용하려는 대상에 따라 다릅니다. 단순히지도에 점을 표시하려면 Google지도가 좋습니다. Google지도의지도 레이어도 매우 상세합니다. 반면에 OpenLayers는 훨씬 더 많은 기능을 제공하며 확장 성이 매우 뛰어납니다.

OpenLayers에는 시작하기위한 많은 예제가 있습니다.

맵의 경우 OpenLayers는 API 일 뿐이므로 맵 레이어를 제공해야합니다. Google Maps API는 Google에서 제공하는지도 레이어로 제한됩니다. OpenLayer를 사용하면 거의 모든 공개 맵 서비스 (WMS, WFS, TMS, WMS-C)를 표시 할 수 있습니다. 아주 좋은 예는 openstreetmap.org입니다 (커뮤니티가 수집 한 전역 거리 맵). OSM은 TMS 계층으로 개방 계층에 추가 할 수 있습니다. 지시 사항은 이 예제 를 확인하십시오 .


안녕하세요! 첫 번째 대답은 "나는"것 같습니다! 어서 오십시오! 답변 해 주셔서 감사합니다 :-)
Pascal MARTIN

9

일부 고객은 Google지도 사용에 대해 거부하거나 강력하게 예약 할 수 있습니다. Google이 통지없이 광고를 소개하거나 API를 변경할 수 있다는 유효한 우려가있을 수 있습니다. 그러나 Google지도는 다른 Google 서비스 (위치 표시, 사진 추가, 지오 코딩 서비스)와 통합 할 수 있다는 이점이 있습니다. 웹으로서 항상 다양한 매핑 서비스와 API를 결합 할 수 있습니다.


1
+1. 그런 고객이 있습니다. 그리고 나는 그들이 틀렸다고 말하는 것이 아닙니다. 지난번에 Google지도 라이센스 조건에 따라 Google은 원하는 때마다지도에 광고를 게재 할 수있었습니다.
MarkJ

2
또한 GoogleMaps를 사용하면 콘텐츠를 재생성, 수정 및 수정할 수있는 영구적이고 취소 할 수없는 로열티가없는 전 세계 라이선스를 Google에 부여하게됩니다.
MarkJ

9

나는 모든 대답에 동의하지만, 아무도 언급하지 않는 한 가지 중요한 점이 있습니다. OpenLayers와 Google Maps에는 서로 다른 대상이 있습니다.

OpenLayer는 지리 데이터를 표시하는 훌륭한 프레임 워크이지만 Google지도는 다른 서비스 중에서 지리 데이터를 표시하는 프레임 워크를 포함하는 서비스 풀입니다.

따라서 Google지도는 OpenLayes에없는 많은 서비스와 기능을 제공합니다. Google지도 기능 및 서비스의 예로는 지역 지역화, 센서 감지 (GPS가있는 기기의 경우) 및 사용자 지역화, 지오 코딩 및 역 지오 코딩, 스트리트 뷰 등이 있습니다.


6

두 API를 모두 사용했습니다. 회 사용 소프트웨어를 만들고이 소프트웨어를 매핑해야하지만 모든 클라이언트에 GoogleMaps 라이센스가있는 것은 아니므로 두 유형의지도를 모두 지원해야합니다.

나는 그들 사이의 차이점을 추상화하기 위해 공통 API를 만들었고, 당신에게 말해 줄 것입니다. 일부는 다른 것보다 더 쉽습니다. 맵을 패닝 할 수있는 범위를 제한하는 것과 마찬가지로 OpenLayers에서는 사용하기가 훨씬 쉽지만 Google 맵에서는 히트 맵을 사용하기가 더 쉽습니다 (사용 가능한 OpenLayers 플러그인과 달리 Google에서 공식적으로 지원됨).

  1. OpenLayers는 오프라인 맵을 지원합니다. 일부 사용자는 인터넷에 연결되지 않은 개인 인트라넷에 있습니다.

  2. GoogleMaps에는 MarkClusterSpiderfier 라는 두 개의 플러그인이 반드시 있어야합니다. 이렇게하면 수많은 마커를 시각화 할 수 있습니다.

  3. GoogleMaps InfoWindows는 OpenLayers.Popups보다 사용하기 쉽고 유용성이 더 좋습니다. 아이콘을 클릭하면 열 수있는 작은 창이 있습니다. Googlemaps InfoWindows는 기본적으로 훨씬 더 예쁘기 때문에 팝업으로 CSS 마법사를 수행해야합니다.

  4. GoogleMaps에는 스트리트 뷰가있어 때때로 유용합니다.

  5. GoogleMaps에는 더 많은 기능이 필요합니다. OpenLayers에도 많은 기능이 있지만 공식적으로 지원되지는 않습니다.

일반적으로 라이센스가 줄어들고 Google지도에서 사용하는 데 따른 두통으로 인해 OpenLayers를 사용해야합니다. 둘 다 기본 매핑을 처리합니다 (즉,지도 위에 마커 표시). 다른 특정 기능 중 필요한 특정 기능을 찾을 수 없으면 OpenLayers로 이동해야합니다. 참조 Google지도 청구 때 당신은 무료로 사용할 수 있습니다에 대한 자세한 내용은.

또한 GoogleMaps에는 'LatLng'과 같은 기본 위치 정보 유형이 있으며 Openlayers는 'LonLat'을 사용하여 함수 호출에서 매개 변수의 순서를 계속 잘못 지정하므로 나를 놀라게합니다.


3

속도 문제를 언급 한 사람들 외에도 IE의 VML 렌더러가 많은 기능을 가진 벡터 레이어로 인해 느려질 수 있다고 덧붙이고 싶습니다. 한 사용자가 약 200에 대해 언급했습니다. IE가 얼어 붙는 지점까지 상당히 느려지기 전에 정확히 추가 할 수있는 내용입니다. 텍스트 레이블 인 기능을 추가하면 내부적으로 각 텍스트 레이블이 두 개의 VML 요소로 구성되므로 절반을 더 적게 추가 할 수 있습니다.

Google에서 콘텐츠가 "div"인 사용자 정의 GOverlay를 생성하면 IE에서 문제없이 렌더링됩니다.


3

클라이언트 사용과 데이터 파생이라는 두 가지 관점에서 내가 추가 할 몇 가지 사항이 있습니다.

클라이언트 사용법 :

  • 고객이 현재 무엇을 사용하고 있습니까? 변화는 어려울 수 있습니다.
  • 얼마나 많은 기능이 정말로 필요합니까? OpenLayers는 꽤 많지만 사용하지 않으면 ...

데이터 제공 :

  • KML 데이터 를 제공하고 있습니까? 그렇다면 OpenLayers와 Google Maps가 모두 작동하므로 클라이언트 사용을 기반으로 결정해야 할 것입니다.

  • 다른 유형의 데이터 서비스를 제공하고 있습니까? (WMS, WFS, CSV 등) 그렇다면 OpenLayers에 대한 예와 지원이있을 가능성이 큽니다.


2

OL은 큰 팬베이스를 가지고 있으며 아마도 세계에서 가장 많이 사용되는 Opensource 지오메트리 일 것입니다.

OL이 스트럿과 같은 것이 아니라 JSF 및 모바일 (비지오)과 같은 다른 종류의 기술에 대해 토론하는 경향이 있기 때문에이 사이버 공간에서 많은 스레드와 게시물을 볼 수 없습니다.

그러나 Ol은 몇 가지 단점이 있습니다. 주로 낮은 수준이므로 일반적인 작업을 수행하기 위해 많은 코드를 작성해야합니다. 개발자로서 a : 모든 코드가 미리 준비되어 있고 b : 조정 및 사용자 정의가 매우 쉽기 때문에 그 방법도 잘 작동합니다.

보다 정교한 무료 지오 툴이 있지만 오픈 레이어를 호출하고 더 지루한 일을 추상화하기 만하면됩니다.

자신있게 사용하십시오. 성숙하고 강력하며 가까운 미래에 죽지 않을 것입니다. 그러나 개발 프로세스 속도를 높이려면 그 위에 탑재 된 다른 도구를 사용해보십시오.

좋은 하루 보내세요


안녕하세요, OpenLayers 위에있는 "보다 정교한 무료 geotools"에 대해 자세히 설명해 주시겠습니까? GeoExt는 위에서 언급되었지만 아직 지정된 다른 것을 보지 못했습니다. 감사.
Brian B

@BrianB hi brian, 정확하게 "보다 정교한 무료 geotools"를 작성할 때 geoext에 대해 생각하고있었습니다. 이 라이브러리는 EXTJS를 오픈 레이어와 통합합니다.
demonz demonz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.