일반적인 오픈 소스 패키지 로드맵에 대한 조언을 원하십니까? [닫은]


17

나는 대부분의 패키지에서 가능한 한계를 완전히 이해하지 못하기 때문에 오픈 소스 GIS 전문가에게 권장 스택에 대한 조언을 구하고 싶습니다. 나는 ESRI의 다양한 패키지를 사용하여 원하는 것을 할 수 있다는 것을 알고 있지만, 세상이 더 저렴하고 개방적이기를 원합니다. 나는 어떤 도전에도 도전 할 수 있고 프로젝트가 이루어질 수 있도록 충분히 배울 수 있다고 확신합니다. 처음에는 잘못된 길로 가고 싶지 않습니다.

내 사이트 비전 : UI가 아닌 비 GIS 사이트! whereis.com 의 선을 따라 더 많은 것이 기본 맵 위에 떠오르는 상자에서 모든 (또는 거의 모든) 작업이 수행됩니다. 별도의 창에 체크 박스가있는 GIS 레이어가없는 것을 강조하는 것만으로도 세부 사항이 중요하지 않습니다. 사용자 상호 작용의 측면에서 등록 된 사용자는베이스 위에 음료수 위치, 도보 경로 등의 기능을 만들 수 있습니다. 지도를 작성하고 자체 기능을 편집하십시오. 가능하면 자신이 만든 기능 만 편집하십시오. 정말 협력적인지도입니다.

나는 여전히 대부분 연구 모드에 있으며 다양한 패키지를 가지고 놀지 만 실제 테스트가 아닌 일반적인 친숙 함을 위해서만 사용됩니다 (먼저 테스트해야합니다!). PostGIS는 Geoserver / Mapserver를 미들웨어로 사용하여 기본 DB로가는 올바른 방법 인 것 같습니다. Openlayers는 이미 익숙하고 힘을 알고 있기 때문에 미끄러운지도가 될 것입니다.

따라서 많은 조언이 필요한 두 가지 주요 문제가 있습니다.

1) 이와 같은 사이트에 가장 적합한 최상위 계층 UI는 무엇입니까?

Django (또는 Django-CMS)의 사용자 정의 인스턴스입니까, 아니면 단순히 GeoExt 또는 다른 라이브러리 (함께 로그인 / 등록 / 전체 UI를 만들 수 있는지 확실하지 않음), 다른 CMS / 프레임 워크 ( 아니, 드루팔이나 그 어떤 것도 제한하지 않습니다!), 또는 완전히 다른 무엇입니까?

2) 등록 된 사이트 사용자가 자신의 기능 만 편집 할 수 있습니까?

OSM 및 기타 공동 프로젝트 경험과 같은 대규모 "낙서"장소를 피하고 싶습니다. Geoserver가 기능 수준의 사용자 인증을 가질 수 없다는 것은 이전에 읽은 것과 조언에서 보인 것 같습니다.

Mapserver가 가능합니까?

사이트의 사용자 모집단 (CMS 또는 프레임 워크)이 지오 서버 / 맵 서버에 직접 연결할 수 있는지조차 알지 못합니다.

오픈 소스 솔루션으로 이러한 개념을 사용할 수없는 경우 해당 목표를 달성 할 수있는 다른 방법이 있습니까?

인증 된 사용자가 원본을 엉망으로 만들지 않도록 게시되지 않은 주 기능 레이어 버전을 편집하고 원본을 매일 백업하면서 24 시간마다 게시 된 버전으로 자동 병합합니까?

이 의도를 달성하는 방법에 대한 손실.

그리고 네, GeoNode도 살펴 보았지만 전체 맵을 하나만 원하고 (간단하게 유지하십시오) UI는 GeoExplorer로 가기 전에 대화 형으로 충분하지 않거나 GeoExplorer에서 너무 GIS와 비슷합니다. 이 프로젝트에 대한 솔루션을 미리 준비한 것 같습니다.

너무나 열리고 막연하게해서 미안하지만, 위의 가능성이있는 경로를 시작하고 몇 달 후 벽에 닿지 않기를 바라고 있습니다. 경로 때문에 다시 시작해야합니다. # 1은 처음부터 그 기능을 갖지 못했습니다!

내가 찾을 수있는 가장 좋은 예 중 하나는 http://www.gpsies.com 입니다 . 이것이 전단지를 사용한다는 것을 알고 있지만 기본 프레임 워크와 데이터베이스는 확실하지 않습니다. 사용자는 자신의 기능을 만들거나 업로드 할 수 있지만 다른 사람은 편집 할 수 없습니다.


5
OpenStreetMap 그래피티에 관한 내용은 약간 잘못 안내되어있을 것입니다. OSM은 때때로 기물 파손을 당하지 만 그것은 예외가 아니라 표준입니다. 사용자 별 권한은 대부분의 사용자가 일시적이라는 명백한 결함이 있으므로 다른 사람이 데이터를 완료하거나 제거 할 수있는 방법으로 미완료 또는 정크 데이터를 갖게됩니다.
tmcw

그것은 매우 유효한 요점이며, 내가 명심해야 할 것입니다. 적절한 백업 프로세스가 마련되어 있으면 넓은 개방형 모델이 가장 보람이 될 수 있습니다. 나는 지금이 시점에서 개발조차하지 않고 아이디어를 배우고 발전시킬 여지가 많다. 감사!
제레미

답변:


8

나는 지금 다소 비슷한 것을 만들고 있기 때문에 내가 어떻게하고 있는지 알려 드리고 다른 조각을 위해 원하는 것을 바꿀 수 있습니다.

장고 ( GeoDjango 와 함께 )는 파이썬의 기본 프레임 워크로 이것에 꽤 좋습니다 (다시 말하면, 다른 언어로 할 수 있습니다).

사용자 수준 편집에 대한 나의 접근 방식은 CaptDragon이 설명한 것과 비슷합니다. 장고 인증 프레임 워크를 사용하고 있습니다. 이 프로젝트를 위해 내 API는 Django의 Tasty Pie 를 사용하여 만들어지고 있으며 이미 인증을 고려하여 적절한 RESTful API를 쉽게 만들 수있는 프레임 워크가 있습니다.

내 Mapserver (또는 Geoserver 또는 사용하기로 선택한 것)는 외부 세계에 직접 노출되지 않습니다 (로컬 서버 만 해당 서버에 액세스 할 수 있음) ... 모든 타일은 타일 서버 ( geowebcache , tilecache , tilestache 무엇이든 사용하여 제공됩니다) ).

Openlayers는 이미 언급 했으므로 언급 할 필요가 없습니다. 좋은 선택.

PostgreSQL / PostGIS는 또 다른 최고의 도구였습니다. :)

자바 스크립트 라이브러리로서 jQuery에 결코 잘못 갈 수 없습니다. 여러 번 편집을 허용하려는 경우 backbone.js와 같은 것을 사용하여 자바 스크립트 객체의 일부 구조 를 갖는 것이 좋습니다. . 소금 한알과 함께 섭취하십시오. 어떤 사람들은 그것을 좋아하고 다른 사람들은 그것을 싫어합니다.

사이트가 너무보기 흉하게 보이지 않게하려면 자신을 선호하고 Bootstrap 또는 Compass 또는 대안 과 같은 CSS 프레임 워크를 20 달러에 사용하십시오. 테마 포레스트 또는 랩 스트랩 에서 하나를 구입 하십시오. ( 하십시오) 라이센스를 구매하려는 경우 라이센스를보고 싶습니다). 이 중 하나를 연결하면 하루가 걸리고 사이트 모양이 크게 달라집니다!

개인적으로 Django-cms (그리고 Pinax를 보았습니다. )를 여러 번 그것이 문제의 가치가 있다고 스스로를 설득 할 수는 없습니다. 나는 그 결정을 아직 ​​후회하지 않았다.

다양한 버전의 스키마가 필요한 프로젝트를 선택하기 때문에 (개발할수록 더 많이 변경 될 수 있음) south를 사용하십시오 . 망설이지 마십시오! 진심으로.

그것이 제가 사용하는 것이지만 오픈 소스의 멋진 점은 자신의 필요에 맞게 부품을 변경할 수 있다는 것입니다.


다른 사람들과 함께 좋은 정보를 주셔서 감사합니다. 앞으로 나아갈 때 초점을 좁히는 데 도움이됩니다.
Jeremy

부트 스트랩이 뛰어납니다. 이를 사용 하는 예제 매핑 사이트를 알려주 시겠습니까?
Stephen Lead

6

Ragi와 비슷한 스택을 사용하고 있습니다. 응용 프로그램의 알파 버전 근처에 있습니다.이 시점에서 올바른 선택이있는 것 같습니다. 내 해결책은 다음과 같습니다.

서버에서 :

  • 우분투 서버 + 아파치 웹 서버 + 아파치 톰캣.
  • 데이터베이스로 PostgreSQL + PostGIS.
  • 지오 서버 (내 경우에는 래스터에만 사용).
  • 장고 프레임 워크 + Tastypie. Tastypie는 API를 통해 모든 벡터를 제공하며 사용자에게는 '개체 별'권한이 있습니다.
  • python-gsconfig는 파이썬에서 지오 서버를 제어합니다.
  • PDF를 생성하는 재스퍼 보고서.
  • pyjasper는 파이썬에서 재스퍼 보고서를 제어합니다.
  • 보간을위한 고성능 지리 통계 라이브러리.

클라이언트에서 :

  • ExtJs 4-> 매우 훌륭합니다. extjs는 tastypie와 매우 잘 작동하며 창과 테이블과 같은 많은 것들이 기본적으로 작동합니다. 나는 순수 코드로 사용하기 시작했지만 nou 나는 Sencha Architect 2를 사용하여 많은 도움을줍니다.
  • OpenLayers-> extjs 저장소와 Openlayers 레이어에 하나씩 두 개의 메소드를 삽입하면 데이터 변경시 서로 업데이트됩니다.

나는 tastypie 옵션을 확실히 연구 할 것이고 유망한 것처럼 보입니다. 매우 도움이되었습니다!
제레미

4

등록 된 사이트 사용자가 자신의 기능 만 편집하도록 할 수 있습니까?

Cartaro를 사용 하면 가능합니다 . 그것은 Drupal (Drupal과 같은 제한은 없지만 내 말을 들어주세요!)을 기반으로하며 사용자가 다른 옵션 중에서 자신의 기능 만 편집 할 수 있습니다. 관리자로 로그인했을 때 사용자 페이지에서 가져온 스크린 샷은 사용자에게 설정할 수있는 권한 유형을 보여줍니다.

카르타로 권한

또한 Cartaro는 PostGIS, GeoServer 및 OpenLayers에서 실행되므로 원하는 모든 것을 가질 수 있습니다.

이와 같은 사이트에 가장 적합한 최상위 레이어 UI는 무엇입니까?

"최상의"최상위 레이어가 무엇인지 모르겠지만 Drupal에는 많은 UI 옵션이 있기 때문에 Cartaro가 원하는 것을 제공 할 수있을 것 같습니다. Cartaro가 개발 초기 단계 인 것 같습니다 (개인적으로 그것을 사용하는 사람을 모릅니다).


1
나는 정보가 고마워, Cartaro가 그 능력을 가지고 있다는 것을 몰랐다. 지금은 다른 사람들이 언급 한 기본 모델 (적어도 연구 / 학습 관점에서)을 고수 할 것입니다. 그러나이 CMS를 좀 더 깊이 살펴볼 수 있습니다. 나는 몇 달 전에 한 시간 정도의 시간을 주었고 처음에는 감명받지 못했지만 공정하게 말했을 때 그 당시에는 많은 기회를주지 못했습니다.
제레미

3

2 번 문제를 다룰 것입니다. 이것은 사용자가 자신의 레코드를 편집 할 수있게하는 문제를 해결 하는 방법 입니다.

UpdateUserRecord(string WKTLocation, string otherArg)사이트의 인증 메커니즘 과 관련된 자체 웹 서비스 RESTFUL 또는 SOAP (선택)를 만듭니다.

OpenLayers와 PostGIS는 WKT (Well-Known-Text)와 GML 및 기타 표준 형식을 읽고 쓰지만 개인적으로 WKT를 사용하여 지오메트리 정보를 웹 서비스와 PostGIS DB로 응용 프로그램에서 다시 형식으로 전달합니다.

또한 내 웹 메소드 UpdateUserRecord는 인증 된 세션 사용자 만 호출 할 수 있습니다. ㅏ401 Unauthorized다른 사람이이 웹 서비스를 호출하려고하면 가 반환됩니다. 필자의 경우 OpenAuth2 (Google, Facebook, Twitter 등)를 사용하여 인증하는 옵션과 함께 .NET 및 FormsAuthentication을 사용합니다. PHP, Java 등에서도 가능합니다.

따라서 PostGIS 데이터베이스를 직접 호출하고 원하는대로 레코드를 업데이트하거나 삽입하는 웹 메소드를 작성할 수 있습니다. 그리고 그렇게 했어요.

그런 다음 WFS, WMS 쿼리 기능을 위해 GeoServer를 사용했으며 쿼리에서 요청한 경우 UserID를 제공 할 맵에 정보를 쉽게 표시 할 수있었습니다.

도움이 되었기를 바랍니다.


이것은 동일한 기본 원칙에 대한 여러 가지 조치와 함께 많은 도움이되었습니다. 올바른 학습에 중점을 두어이를 실현할 수있는 자신감이 조금 더 있습니다. 도 감사하다!
제레미
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.