ArcGIS Pro场景图层动态投影对发布后造成的影响

1
分享 2018-06-15
今天遇到一个问题,是ArcGIS Pro初学者很容易掉入的大坑。ArcGIS Pro场景图层被动态投影后再发布,空间参考会以投影后的数据框坐标系为准,而不再是原始数据空间参考。
问题复现:
我想要将一个Mutipatch数据发布为SceneLayer,它是一些建筑物,坐标系为WGS 1984 UTM Zone 49N wkid:32649。
很自然的,我将它Add to a new Scene。
addtonewScene.png

然后,在场景中右键这个图层-share-Share As Web Layer
ShareAsWebLayer.png

最后分析发布,成功!
fabuchenggong.png

至此,一切看起来都是那么完美。
但是很快在Portal里发现,此场景图层无法和wkid同样为32649坐标系的通过SLPK发布的SceneLayer叠加。但各自单独打开都是没问题的,可以正常查看。
于是,我打开了他们SceneLayer的REST页。惊人地发现刚刚由mutipatch发布的SceneLayer空间参考居然是wkid:4326
wkid4326.png

问题分析
它的源数据不是wkid:32649吗?难道是数据有问题?我联想起从前在ArcMap向ArcGIS Server发服务,服务的坐标系与地图文档中数据框的坐标系有关,难道是这个原因?于是,我去检查了发布Web Layer时Scene数据框的坐标系。
shujukuang84.png

果然,场景数据框的坐标系为WGS1984,wkid:4326。新问题又来了,为什么Add to new Scene,一个好好的UTM 49N投影坐标系的数据,场景数据框却是WGS1984地理坐标系呢?原来,缩小一下,可以看到地球,这是一个全球场景。全球场景只能是采用WGS84或Web墨卡托的空间参考。我现在的使用场景相当于“向全球场景添加了具有任意空间参考的非缓存图层(它们会被重新投影至场景空间参考)”。
localglobe.png

我的投影坐标系的mutipatch加到全球场景里以后,动态投影成了WGS1984坐标系。Share AS Web Layer后,场景图层的坐标系按照动态投影后的坐标系了。而在Web中,想要使用UTM 49N的投影坐标系作为场景的坐标系的话,需要使用局部场景,而不是全球场景。所以,解决此问题需要在ArcGIS Pro中创建局部场景,不让此图层动态投影到84。而是在局部场景中使用图层本身的UTM 49N坐标系。
解决方案
ArcGIS Pro中,可以设置默认创建的Scene是Global Scene 还是 Local Scene。
moren.png

点击左上角蓝色的Project - Options - Map and Scene设置默认创建的是Local Scene,再重复之前的发布工作流,则发布正确。wkid为32649
zhengquejieguo.png

思考
这是bug吗?还是软件设计理念?下面是思考

1 个评论

是软件设计理念。为了体现ArcGIS Pro产品 和 ArcGIS Enterprise产品的一致性。在ArcGIS Pro中以Global场景制图,进行发布的图层,由于默认用户在Web中也是使用Global场景的,是同样可以在ArcGIS Enterprise中的全球场景进行加载的。否则,如果发布完的图层按原始数据的空间参考,不按照动态投影后的空间参考。那么在全球场景Web Scene中就无法加载这个图层了,会出现不一致性,会令用户更费解。

要回复文章请先登录注册