ArcGISのリリースの高さが10.21以上でなければならない、私は10.4を使用しました。
API 4.xのためにのArcGISとフロントエンド
そこに長いArcSceneののCSバージョンの前に、あなたは標高TIFファイルを表示することができArcGISのが、全く異なるメカニズムおよびBS。
BSは、キャンバスの3Dグラフィックで描かれたJS用のArcGISの遠位端と、タイルの後部標高データことを条件とする、標高を示します。
1、すべての最初は、DEMを持って、DEMは、財産の内側からの眺めだけでシングルバンドTIFファイルです。
2は、高度サービスをリリースしました。
まず、あなたはラスタツールを変換する必要がない場合、これは、3857 TIF座標系のためWKIDしなければならない必須のArcGIS。
その後、スライスを求めImageServiceサービスを、公開、カットは、ArcGISオンライン/ビング/ Googleのプログラムでなければなりません。
最後に、Cacheing-アドバンス設定、スライスを選択するには、LERC形式でなければなりません。
図3は、リリース後、JSコードの検証を使用しています。
ArcGISは標高レイヤのレイヤを使用して、この層を入れ、map.groundができ与えます。デフォルトの標高サービスのアドレスをテストするために使用することができますがあります。公式のAPIの詳細を参照してください。
https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/index.html
<!DOCTYPE HTML> <HTML> <ヘッド> <メタ文字セット= "UTF-8" /> <メタ 名前=「ビューポート」 コンテンツ=「初期スケール= 1、最大スケール= 1、ユーザスケーラブル= NO」 /> SceneViewに<タイトル>イントロ - 4.12 </タイトル> - 3Dマップを作成します。 <スタイル> html, body, #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } </style> <link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/themes/light/main.css" /> <script src="https://js.arcgis.com/4.12/"></script> <script> var G={}; require(["esri/Map", "esri/views/SceneView", "esri/layers/ElevationLayer", "esri/Camera", "esri/layers/ImageryLayer"], function(Map, SceneView, ElevationLayer, Camera, ImageryLayer) { var map = new Map({ basemap: "streets", //ground: "world-elevation" }); G.map=map; var elevationLayer = new ElevationLayer(); //elevationLayer.url = "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"; var evaurl="http://xxx/ImageServer" elevationLayer.url =evaurl; map.ground.layers.add(elevationLayer); var view = new SceneView({ container: "viewDiv", map: map, alphaCompositingEnabled: true, environment: { starsEnabled: true, atmosphereEnabled: true }, scale: 500000, //center: [-128.9, -73.01] center: [-128.9, -73.01] }); var layer = new ImageryLayer({ // URL to the imagery service url: evaurl, format:"jpg" }); map.layers.add(layer); var cam = new Camera({ heading: 9, // face due east tilt: 80, // looking from a bird's eye view position: { latitude: -73.22, longitude: -129.07, z: 6800, spatialReference: { wkid: 3857 } } }); view.camera = cam; view.environment.lighting.cameraTrackingEnabled = true view.environment.lighting.directShadowsEnabled=true G.view=view; //G.map.ground.layers.items[0].visible=false; }); </script> </head> <body> <div id="viewDiv"></div> </body> </html>
4.效果。高程默认是没有颜色的,只有凹凸起伏。颜色是另附一层Image上去的,默认是黑白色,若要彩色覆盖,则需要设置Raster Function。
5、遗憾。
现在ArcGIS For JS API 4.12 并未支持前端高程拉伸。想要看更突出的效果,必须后端数据拉伸,重新发布。
其实ArcSence中有拉伸因子,但BS的遗憾还未出现。