arcgis更改图层坐标系_ArcGIS API for JavaScript 4.16 局部场景添加自定义坐标系的场景图层(已修改)...

替换这个文件中的._transformNode方法,以及注释掉一个检验坐标系的地方即可

\library\4.16\esri\views的SceneView.js

方法修改前:g.prototype._transformNode = function (a, b, d) {

for (var e = b.geometryData.geometries, f = Array(e.length), g = 0; g < e.length; ++g) f[g] = this._getVertexBufferLayout(e[g], b.geometryDescriptor);

var e = a.mbs,

h = this.elevationOffset,

k = this._controller.crsIndex,

l = this._controller.crsVertex,

m = this.view.renderSpatialReference,

g = V.getLocalOrigin(e, h, k),

h = V.computeGlobalTransformation(e, h, k, m),

k = ka.getProjectorName(k, l),

l = ka.getProjectorName(l, m);

return c.isNone(k) || c.isNone(l) ? null : this._worker.invoke({

context: this.layer.uid,

geometryBuffer: b.geometryBuffer,

geometryData: b.geometryData,

geometryDescriptor: b.geometryDescriptor,

layouts: f,

localOrigin: g,

globalTrafo: h,

mbs: e,

obb: a.obb,

elevationOffset: this.elevationOffset,

needNormals: !this._isIntegratedMesh && this._controller.isMeshPyramid,

normalReferenceFrame: this.layer.normalReferenceFrame || "none",

indexToVertexProjector: k,

vertexToRenderProjector: l

}, d)

};有两种修改方式,按需使用,推荐使用第一种方式。但第二种方式也给了扩展的可行性。

第一种方式,不支持动态投影,需保证当前场景的坐标系和场景图层的坐标系完全一致。效果很好。g.prototype._transformNode = function (a, b, d) {

for (var e = b.geometryData.geometries, f = Array(e.length), g = 0; g < e.length; ++g) f[g] = this._getVertexBufferLayout(e[g],

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值