Geographic Information Systems Asked on December 29, 2021
I tried to connect CesiumJS to ArcGIS by using ArcGisImageServerTerrainProvider.
This works OK if I have a map in simple format BUT:
Here's the issue where it was decided to deprecate ArcGisImageServerTerrainProvider
. The reasons given (by one of Cesium's core terrain/imagery developers) are quoted here:
We probably should have removed ArcGisImageServerTerrainProvider prior to the 1.0 release, because it is unfortunately nearly impossible to actually use. The problem is that ArcGIS image servers can return height data in a number of ways, but none of them really work for our purposes. If the heightmap is returned as a floating point TIFF, web browsers (and therefore Cesium) are unable to decode it. If the heightmap is returned as a PNG or JPG, the heights are discretized to a value from 0-255, creating a lousy terrain representation.
The workaround that ArcGisImageServerTerrainProvider expects (and this is not well documented) is the use of a special proxy. The proxy requests heightmap images from ArcGIS as TIFF files, and then re-encodes them as PNG files to serve to the browser and Cesium. Rather than a simple grayscale PNG like the one ArcGIS produces itself, the transcoding proxy uses the red, green, and blue channels to effectively represent a 24-bit integer. This gives us much more height precision than we get from the standard ArcGIS PNGs.
Answered by emackey on December 29, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP