유지 보수가 거의 필요하지 않은 웹 맵을 작성하는 데 적합한 Javascript 웹 API (바람직하게는 개방형) 란 무엇입니까?


11

최근에 지역 비영리 단체를위한 웹 맵을 만들려고 자원했습니다. 지도는 매우 기본적입니다. 각 지역마다 "중앙 사무소"위치를두고 여러 지역으로 분할 된 레인 카운티, 오레곤을 표시해야합니다. 나는 여름 동안 여가 시간에 이것을 건설 할 계획이며, 앞으로 어떤 종류의 유지 보수가 필요할 위험이 거의없이 이것을 그들에게 나누어 줄 수 있기를 원합니다.

ArcGIS Server와 함께 ArcGIS Javascript API를 사용하여 여러 웹 맵을 구축했지만이 조직에 ESRI 소프트웨어 (또는 해당 GIS)가 없으므로 다른 API를 학습 할 계획입니다. OpenLayers / OpenGeo를 고려하고 있습니다. 명심해야 할 것은이 조직에이 맵의 계층을 호스트하도록 서버를 설정하지 않았기 때문에 데이터를 저장하고 액세스하는 방법을 잘 모르겠다는 것입니다. JSON일까요?

저는 현재 대부분의 ArcGIS 이외의 솔루션에 익숙하지 않으므로 조언을 부탁드립니다.

답변:


4

http://openlayers.org/dev/examples/vector-features.html 과 같이 OpenLayers 예제와 같이 기능을 Javascript로 하드 코딩 할 수 있습니다 . 추가 데이터 스토리지에 대해 신경 쓸 필요가 없습니다. 물론 표시 할 기능이 거의없는 경우에만 옵션입니다. 그러나 미래의 모든 관리자가 파악할 수있는 "한 파일"솔루션입니다.

다각형을 shapefile로 내보낼 수있는 경우 QGIS는 "노드 추출"을 도와 OpenLayers에서 다음과 같이 다각형을 만드는 데 사용할 수 있습니다.

// create a polygon feature from a linear ring of points
var pointList = [new OpenLayers.Geometry.Point(x1,y1),new OpenLayers.Geometry.Point(x2,y2),<<<more points>>>];
var linearRing = new OpenLayers.Geometry.LinearRing(pointList);
var polygonFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing]));

Google지도 또는 이와 유사한 위에 이러한 다각형을 오버레이하려면 먼저 다각형을 Web Mercator 투영에 다시 투영 할 수 있습니다.


감사! 기능이 너무 많지 않으면 필요한 것일 수 있습니다. 시도해 볼게요. 현재 District 폴리곤 피쳐 클래스를 이러한 하드 코딩 된 값으로 내보내는 방법을 알아 내면됩니다.
Tanner

1
@Tanner : GDAL / OGR을 사용하여 GeoJSON으로 변환 할 수 있습니다. 적어도 Cloudmade, Google Maps, Yahoo! OpenLayers의 맵 또는 Bing Maps 기본 계층. 나는 상업적인 제안을 추진하는 것처럼 들리지 않지만 Open tech를 위해 Open tech를 사용하는 것처럼 들립니다. 조직에 알맞은지도를 제공하십시오.
Sean

@Tanner : 지구 데이터 형식은 무엇입니까?
underdark

ArcGIS 다각형 피처 클래스.
Tanner

@Sean : 조언 감사합니다. GDAL / OGR을 확인하겠습니다. 이것이 자원 봉사 프로젝트이기 때문에, 이것은 (일괄 적으로) 일회성 거래입니다. 나는 다시 돌아오고 싶지 않습니다. 주요 관심사는 서버 소프트웨어 (예 : MapServer)가 필요하지 않으며 곧 중단 될 가능성이 가장 적은 웹 사이트에서 호스팅 할 수있는 간단한 웹 맵을 만드는 것입니다. 상용 기본 계층 / API가이를 제공 할 수 있다면 고려할 것입니다. 최소한 상용베이스 레이어를 사용할 것입니다.
Tanner

10

오픈 소스 매핑 솔루션의 경우 다음을 고려할 수 있습니다.

  1. 매핑 서버 플랫폼-GeoServer Java 기반 및 오픈 소스. 많은 프로덕션 환경에서 잘 작동합니다. 점검 : http://geoserver.org/display/GEOS/Welcome 사용자 매뉴얼 : http://docs.geoserver.org/stable/en/user/

    다른 옵션은 MapServer입니다. http://mapserver.org/

    비교를 확인하십시오 : http://www.slideshare.net/novum.limitis/mapserver-vs-geoserver

  2. 클라이언트 쪽-웹 페이지 스크립팅 Openlayers는 많은 예제를 시작하고 구현하기 쉬운 것이 가장 바람직합니다. 확인 : http://openlayers.org/ 예 : http://openlayers.org/dev/examples/

  3. 공간 데이터 : 이용 약관 및 라이센스에 따라 Google / Yahoo / Bing지도를 이용할 수 있습니다. 또는 GeoServer에 게시하여 사용할 수있는 OpenStreet Maps. OpenStreet Map : http://www.openstreetmap.org/ OpenStreet Map 모양 파일은 다음을 통해 다운로드 할 수 있습니다. http://wiki.openstreetmap.org/wiki/Shapefiles

Google / Yahoo / Bing 맵을 사용하려는 경우 API 또는 OpenLayers와 함께 사용하여 GeoServer 및 공간 데이터가 필요하지 않습니다. 좋은 웹 맵 API에 대한 질문이 있었지만 완전 오픈 소스 매핑 플랫폼에 대해 생각하기 위해 매핑 플랫폼 및 공간 데이터 참조가 추가로 제공됩니다.


내가 말한 것을 킨다, 그러나 더 잘 넣어 라!
MerseyViking

3

내 UG 논문의 일부로 OpenLayers를 사용하는데 오류가 없습니다. 글쎄요, 나는 지난 밤 늦게까지 행동하려고 노력했지만, 그것은 OL 그 자체가 아닌 모바일 친화적 인 사이트를 만들려고 할 때 대부분 무지했습니다.

WMS를 사용하여 다른 서버에서 온 레이어를 쉽게 추가 할 수 있습니다. WMS 타일을 처리하는 MapServer를 실행하고 있으며 OL에서 다음을 사용합니다.

var layer = new OpenLayers.Layer.WMS(
    "Resistivity",
    "http://mywebsite.com/maps?map=amap.map",
    {'layers': 'resistivity', 'format':'image/png', 'transparent':'true'},
    {singleTile: true}
);

map.addLayer(layer);

실제로 WFS 및 WFS-T 서버, OSM, Google 또는 Bing 맵 및 사진 레이어에 대처할 수 있으며 작은 설치 공간으로 멋진 웹 매핑 앱을 가질 수 있습니다.



2

영리 조직이 아닌 몇 가지 훌륭한 옵션이 있습니다. Bing 및 Google지도는 모두 비영리 조직에 사용할 수 있습니다.

좋은 요약은 다음과 같습니다. Google Maps- http : //www.georelated.com/2012/02/cloud-web-map-api-services-reviewed.html Bing Maps- http : //www.georelated.com/2012 /02/cloud-web-map-api-services-reviewed_19.html


2

파티에 늦었지만 요즘에는 다른 옵션을 추가 할 것이라고 생각했습니다.

서버를 호스팅하고 싶지 않지만 여전히 스타일링과 매우 빠른 타일 캐싱의 이점을 누리려면 Google Fusion TablesOpenlayers를 사용해보십시오 . 에서 앨런 글렌의 블로그

var proj_4326 = new OpenLayers.Projection('EPSG:4326');
var proj_900913 = new OpenLayers.Projection('EPSG:900913');
map = new OpenLayers.Map({
   div: "map",
   projection: proj_900913,
   'displayProjection': proj_4326,
   allOverlays: true
});

var osm = new OpenLayers.Layer.OSM();

var fusionLayer = new OpenLayers.Layer.OSM("Fusion Table       
Map","http://mt0.googleapis.com/mapslt?hl=en- 
US&lyrs=ft:113681&x=${x}&y=${y}&z=${z}&w=256&h=256&source=maps_api");
map.addLayers([osm,fusionLayer]);

var long=12;
var lat=56.5;

var lonlat = new OpenLayers.LonLat(long,lat).transform(map.displayProjection,
map.projection);

map.setCenter(lonlat, 6);

gdal을 사용하여 퓨전 테이블을로드 할 수 있습니다 . 그렇게하면 클라이언트 측에서 geojson 기하학을 구문 분석하는 가격을 지불하지 않습니다. 이 비용은 사소한 것 (소량의 기능의 경우)에서 중요 (대량의 기능의 경우)까지 다양합니다. 그것은 또한 당신의 기하학을 많이 만들 것입니다


1

@Sean의 대답 에 따라 지난 10 월 에 제기질문 과 해결책이 있습니다. 나도 전달할 수있는 무언가를 원했다. 지구 경계를 표시하는 한 Fusion Tables가 그렇게 할 수 있습니까?


1

CloudMade , Google지도 , Yahoo! 지도 또는 Bing지도 . 결국 누군가가 그들의 웹 사이트를 돕기 위해 와서 OpenLayers 또는 GeoJSON에 대한 단서가 없을 것입니다. 잘 알려진 상용 제품을 사용하는 것이 훨씬 더 미래 보장 될 것입니다. Google지도로해야 할 일을 아는 사람을 쉽게 찾을 수 있으며 친숙한 인터페이스를 제공합니다. 또한 공개 사이트에 대해서는 여전히 무료입니다.

그들 자신의 API 키를 얻었는지 확인하십시오.


3
이 질문은 상업용 버전을 제안 할 권리가 있기 때문에 투표권이 아닌 "오픈 소스"로 태그되었습니다. 간단히 말해서 Google지도를 사용하면 3 년 동안 사용 중지 된 후에 코드를 업그레이드해야 모든 새 버전의 Google지도 API에 대해 동일한 APP를 계속 반복해서 개발해야합니다. 오픈 레이어로 개발하면 원하는만큼 라이브러리를 자체 호스팅 할 수 있습니다. 서비스를 끄는 스위치를 뒤집는 사람에 대해 걱정할 필요가 없습니다.
CaptDragon

1
나는 오픈 소스에 반대하는 것이 없다. 정반대. 나는 '공개'를 자유로이 해석했을 수 있습니다 (그리고 태그를 제한적으로 사용하지는 않습니다). 그러나 문제 해결 분야에서 OpenLayers, MapServer, GeoServer, OpenStreetMap 등에 대한 제안은 비영리 직원의 99.9 %가 스스로 처리 할 수있는 것보다 기술적으로 더 복잡합니다. 그가 조직을 돕고 싶을 때, 그들이 고칠 수 있거나 고칠 때 고칠 사람을 쉽게 찾을 수있는 것을 주어야한다. 스킬 셋에 Google지도를 사용하는 사람의 수가 훨씬 많으며 조직 서버 액세스가 필요하지 않습니다.
Sean

1
네, 왜 사람들이지도 서비스를 호스팅 할 수 없다고 말했을 때 사람들이 GeoServer & MapServer를 제안하는 답변을 투표에 참여시키는 지 모르겠습니다. : P
CaptDragon

@ capdragon : GeoServer / MapServer 및 공간 데이터는 선택 사항이라는 답변에도 분명히 언급되어 있습니다. Openlayers 없이도 계속 진행할 수 있습니다. 사용자가 알고 있다는 응답으로 추가 정보를 제공하는 데 아무런 해가 없습니다 ...
Senthil

@Senthil : 다시 읽어 보면 "이 조직은이 맵의 계층을 호스팅하도록 서버를 설정하지 않았을 것입니다". 선택은 문제의 단어조차 아닙니다.
CaptDragon

1

아마도 CartoDB를 확인하는 것이 좋습니다.

http://cartodb.com/

지리 데이터를 쉽게로드하고 편집 할 수있는 매끄러운 무료 웹 매핑 서비스입니다. 지도를 '비공개'로 만들 수있는 옵션이 있는지 확실하지 않습니다.

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