2016-09-19 3 views
0

고도의 히트 맵을 표시하는 래스터 레이어를 만들려고합니다. 붉은 색이 높은 피크이고 파랑이 바다입니다. OpenLayer 3의 Geolocation (ol.Geolocation)을 활용하려고했지만 정의되지 않은 값을 반환합니다. Geolocation의 주요 용도는 실시간 GPS 위치 확인을위한 것이지만 다른 위치에서도 사용할 수 있어야합니다.OpenLayers 3에 대한 고도 데이터를 얻는 방법?

그렇지 않으면 위도와 경도를 기반으로 고도 데이터를 얻을 수있는 다른 무료 서비스 (Google지도를 사용해야하는 Google Elevation API는 제외)가 있습니까?

app.rasterCounter = 0; 
var geolocation = new ol.Geolocation({ 
    projection: map.getView().getProjection() 
}); 
var raster = new ol.source.Raster({ 
    sources: [bing], 
    operation: function(pixels, data) { 
     //find the current pixel's location 
     var y = Math.floor(app.rasterCounter/map.getSize()[0]); 
     var x = Math.floor(app.rasterCounter % map.getSize()[0]); 
     //find the pixel's coordinate equivalent 
     var coords = map.getCoordinateFromPixel([x, y]); 
     var lonlat = ol.proj.toLonLat(coords); 
     geolocation.set('position', lonlat); 
     //if above sea level, then display a heatmap of the long/lati, otherwise display red 
     var pixel = geolocation.getAltitude() > 0 || geolocation.getAltitude() === undefined ? [0, lonlat[0]+100, lonlat[1]+100, 128] : [255, 0, 0, 128]; 
     app.rasterCounter++; 
     return pixel; 
    }, 
    //allow access to the DOM 
    threads: 0 
}); 
raster.on('afteroperations', function(e) {app.rasterCounter=0;}); 

참고 : 모든 고도가 정의되지 않았기 때문에 결과에 빨간색이 표시되지 않습니다. :/

답변

1

Geolocation API의 목적을 잘못 이해했다고 생각합니다. Geolocation API는 사용 가능한 센서 (GPS, Wi-Fi, IP 주소 등)에 따라 현재 사용자 위치에 대한 정보를 얻는 데 사용됩니다. 가능한 경우 고도를 반환합니다. 그것이하지 않을 것은 지상의 고도가 특정 지점에 무엇인지 알려주는 것입니다. 이것은 단지 설계된 것이 아닙니다.

무료로 제공되는 권한 상승 자료입니다. 단일 점을 쿼리하는 경우 MapQuest Open Elevation Service - https://open.mapquestapi.com/elevation/과 같은 것을 사용할 수 있습니다 - Google Maps Elevation 서비스와 매우 비슷하지만 동일한 제한이 없습니다 (이 점을 제대로 확인해야하며 커서가 눈에 띄지 않습니다). 지도를 만들려면 WMS 또는 TMS 서비스를 통해 이미 만들어지고 사용 가능한 사전 제작 된 래스터 데이터가 필요하거나 자신을 수집하여 렌더링 할 수있는 포인트 클라우드가 필요할 수 있습니다. 이를 위해서는 자신의 연구를해야하며, 찾고있는 분야에 전적으로 달려 있습니다. 예를 들어, 영국에서는 많은 LiDAR 기반 지형 모델이 완전히 자유롭게 사용 가능하며 https://data.gov.uk을 통해 열 수 있습니다. 다른 곳에서 NASA가 생산하는 것을 조사해야합니다. 이 사이트 - http://gisgeography.com/free-global-dem-data-sources/ - 좋은 출발점이 될 수 있습니다.