Supermap WebGL根據(jù)經(jīng)緯度獲取高程值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>三維獲取DEM高程數(shù)據(jù)</title>
        
        <link href="./css/widgets.css" rel="stylesheet">
        <link href="./css/bootstrap.min.css" rel="stylesheet">
        <link href="./css/pretty.css" rel="stylesheet">
        <script src="./js/jquery.min.js"></script>
        <script src="./js/bootstrap.min.js"></script>
        <script src="./js/bootstrap-select.min.js"></script>
        <script src="./js/tooltip.js"></script>
        <script src="./js/config.js"></script>
        <script src="./js/include-classic.js"></script>
        <script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script>
        
    </head>
    <body>
        
        <div id="container" style="width: 100%; height: 100%;"></div>
        
        <div id="toolbar" class="param-container tool-bar">
            <button type="button" id="point" class="button black">繪制點(diǎn)</button>
            <button type="button" id="clear" class="button black">清除</button>
        </div>
            
        <script>
            function onload(Cesium) {
                
                var viewer = new Cesium.Viewer('container');
                
                viewer.imageryLayers.addImageryProvider(new Cesium.TiandituImageryProvider({
                    token: URL_CONFIG.TOKEN_TIANDITU
                }));
                
                viewer.imageryLayers.addImageryProvider(new Cesium.TiandituImageryProvider({
                    mapStyle : Cesium.TiandituMapsStyle.CIA_C,
                    token: URL_CONFIG.TOKEN_TIANDITU
                }));
                
                // 添加地圖服務(wù)
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.SuperMapImageryProvider({
                      url:  "https://iserver.supermap.io/iserver/services/map-jingjin/rest/maps/京津地區(qū)地圖"
                }));
                
                viewer.scene.camera.setView({
                    destination : new Cesium.Cartesian3.fromDegrees(x,y,z)
                });
                
                $('#point').click(function(){
                    handlerPoint.deactivate();
                    handlerPoint.activate();
                });
                
                var tooltip = createTooltip(document.body);
                
                var handlerPoint = new Cesium.DrawHandler(viewer,Cesium.DrawMode.Point);
                handlerPoint.activeEvt.addEventListener(function(isActive){
                    if(isActive == true){
                        viewer.enableCursorStyle = false;
                        viewer._element.style.cursor = '';
                        $('body').removeClass('drawCur').addClass('drawCur');
                    }
                    else{
                        viewer.enableCursorStyle = true;
                        $('body').removeClass('drawCur');
                    }
                });
                handlerPoint.movingEvt.addEventListener(function(windowPosition){
                    tooltip.showAt(windowPosition,'<p>點(diǎn)擊繪制一個點(diǎn)</p>');
                });
                handlerPoint.drawEvt.addEventListener(function(result){
                    
                    tooltip.setVisible(false);
                    
                    pos = result.object._position;
                    
                    // 笛卡爾坐標(biāo)轉(zhuǎn)經(jīng)緯度坐標(biāo)
                    var cartographic = Cesium.Cartographic.fromCartesian(pos);
                    var longitude = Cesium.Math.toDegrees(cartographic.longitude);
                    var latitude = Cesium.Math.toDegrees(cartographic.latitude);
                    
                    // DEM數(shù)據(jù)服務(wù)
                    var gridCellQueryParam = new SuperMap.REST.GetGridCellInfosParameter({
                        dataSourceName: "xxx",
                        datasetName: 'xxx',
                        X: longitude,
                        Y: latitude
                    });
                    
                    // 數(shù)據(jù)服務(wù)
                    var gridCellQueryService = new SuperMap.REST.GetGridCellInfosService(
                        "http://localhost:8090/iserver/services/data-xxx/rest/data",
                        {
                            'eventListeners': {
                                'processCompleted': querySuccess,
                                'processFailed': queryFailed
                        }
                    });
                    
                    gridCellQueryService.processAsync(gridCellQueryParam); 
                    
                });
                
                function queryFailed(evt) {
                    console.log('查詢失敗');
                    console.log(evt.originResult.error.errorMsg);
                }
                
                function querySuccess(evt) {
                    
                    console.log(evt.result);
                    console.log(evt.result.value);
                
                    
                }
                        
            }
        </script>
        
    
    </body>
    </body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容