@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.38 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import e from"../../../core/Logger.js";import{equals as t,isGeographic as r,isWebMercator as i,isWGS84 as s}from"../../../geometry/support/spatialReferenceUtils.js";import{getGlbFormatId as o}from"../../../layers/support/infoFor3D.js";import{ViewingMode as n}from"../../ViewingMode.js";const a="esri.views.layers.support.editableLayerViews";function d(d,c){const{associatedLayer:l}=d,g=l?.infoFor3D;if(!!!g)return!1;const p=o(g);if(!(null!=p&&g.queryFormats.includes(p)))return e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits because it does not support GLB queries.`),!1;const u=d.spatialReference,f=l.spatialReference;if(!t(u,f))return e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits because its spatial reference (wkid:${u.wkid}) is different from its associated FeatureLayer's spatial reference (wkid:${f.wkid}).`),!1;const w=l.sourceJSON.sourceSpatialReference;if(!(null==w||t(w,f)))return e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits because the spatial reference of its associated FeatureLayer's service (wkid:${f.wkid}) is different from its source spatial reference (wkid:${w.wkid}).`),!1;const{view:y}=c;if(c.destroyed||null==y)return!1;const m=y.spatialReference,{viewingMode:$}=y.state,L=r(u),k=$===n.Global;if(L&&!k)return e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits in local viewing mode because its spatial reference (wkid:${u.wkid}) is geographic. Please consider changing the viewing mode to global.`),!1;if(!L&&k)return e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits in global viewing mode because its spatial reference (wkid:${u.wkid}) is projected. Please consider changing the viewing mode to local.`),!1;return!!(t(u,m)||k&&i(m)&&s(u))||(e.getLogger(a).warnOnce(`SceneLayer (${d.title??"Untitled layer"}, ${d.id}) does not support geometry edits because its spatial reference (wkid:${u.wkid}) does not match the view spatial reference (wkid:${m.wkid}).`),!1)}export{d as isGeometryEditableSceneLayer};