SuperMap GIS producto básico 3D GIS colección de preguntas frecuentes (4)

SuperMap GIS producto básico 3D GIS colección de preguntas frecuentes (4)

[WebGL] La escena 3D carga el servicio de mapas REST del sistema de coordenadas gaussianas lanzado por iServer pero no tiene efecto, ¿qué debo hacer?

[Solución] Cesium no es compatible con el sistema de coordenadas de proyección gaussiana, se recomienda convertir a proyección Mercator.

[WebGL] Después de agregar S3MTilesLayer, ¿puede el front-end consultar la altura del modelo del punto según la latitud y la longitud del punto?

[Solución] Puede calcular la altura pasando la latitud y la longitud del modelo a través de viewer.scene.sampleHeight(), por ejemplo:

let  height =  viewer.scene.sampleHeight(
    new Cesium.Cartographic(
      Cesium.Math.toRadians(longitude),//转换成弧度
      Cesium.Math.toRadians(latitude),//弧度
    )
)

[WebGL] Después de usar scene.addVectorTilesMap para cargar mosaicos vectoriales, ¿cómo obtener el estilo de mosaico vectorial mvt?

[Solución] La obtención del estilo de mosaico solo se puede obtener después de que se complete la carga del mosaico. A través del siguiente código, obténgalo en la función de devolución de llamada de cesium.when()

var layerReadyPromise = mvtLayer.readyPromise;
            Cesium.when(layerReadyPromise, function (data) {
    
    console.log(mvtMap.mapboxStyle);}

[WebGL] ¿Cómo calcular el punto central de una superficie geométrica?

[Solución] Usar: var pCenter = Cesium.BoundingSphere.fromPoints(polyPositions).center;

[WebGL] ¿Cuál es la versión de Echarts citada por el sitio web oficial? De acuerdo con el ejemplo, establecer la propiedad min en yAxis no funciona, ¿cómo resolverlo?

[Solución] La versión de echarts utilizada en el ejemplo del sitio web oficial es 4.0.4 y se puede ver a través de console.log(echarts.version). De acuerdo con la API oficial de echarts, solo se establece el mínimo, no se establece el máximo. Si no se establece el máximo, el valor máximo se calculará automáticamente para garantizar la distribución uniforme de las escalas del eje de coordenadas, por lo que es necesario establecer el valor máximo nuevamente.

[WebGL] Al obtener una vista previa en iserver o al abrir una escena a través de scene.open en webgl, la etiqueta del mapa temático tiene el efecto de evitar la agregación de portadas. ¿Cómo puedo mostrar la etiqueta por completo?

[Causa del problema] El webgl incorporado de la vista previa de iserver está configurado para evitar de forma predeterminada, que se puede ajustar a través de la interfaz. Abra la escena a través de scene.open, y la evitación también está habilitada de forma predeterminada.

[Solución] Es necesario configurar layer.isOverlapDisplayed =true, cuando se establece en true, la parte superpuesta aún se muestra, es decir, no participa en la evitación.

[WebGL] ¿Cómo consultar otros puntos dentro de 1 km de un punto?

[Solución] Hay tres métodos de la siguiente manera:
1. Consulta espacial, construir un círculo de geometría para la consulta.
2. Utilice la consulta de distancia, "queryParams":[{…}]" es el conjunto de parámetros del conjunto de datos de consulta, y el nombre especifica el nombre de la capa de destino que se consultará. 3. Utilice el análisis de búfer
.

[WebGL] Al inicializar el contenedor de cesio, se informará un error esporádicamente, y el ejemplo de cargar el sitio web oficial también informará un error. ¿Qué sucede? Usando una tarjeta gráfica AMD.

[Solución] Consulte el blog para obtener información sobre la configuración de la pantalla 3D: https://blog.csdn.net/supermapsupport/article/details/128440798
Se recomienda reemplazarla con una tarjeta gráfica discreta NVIDIA.

[WebGL] Después de analizar la pendiente del terreno, ¿cómo obtener el valor de la pendiente de un punto determinado?

[Solución] WebGL no puede obtener directamente los resultados del análisis de pendiente. Se recomienda utilizar el escritorio para realizar el análisis de pendiente, obtener los resultados del análisis de pendiente y luego publicarlo como un servicio de datos. Utilice este servicio de datos para obtener el valor de cuadrícula de un determinado punto de coordenadas, y el valor de cuadrícula es el valor de pendiente del punto.

[WebGL] ¿Cómo hacer que el mapa Mvt no se pueda seleccionar?

[Solución] Atributo: selectEnabled. Establezca la propiedad verificable del mapa en falso. Código de muestra:

mvtMap.selectEnabled= false

[WebGL] ¿Por qué configurar la capa de terreno para ocultar viewer.terrainProvider.visible = false no tiene ningún efecto?

[Razón del problema] Para configurar la visibilidad de la capa del terreno, debe habilitar el parámetro: invisibilidad

[Solución] Al cargar el terreno, configure el parámetro: invisibility: true, y luego puede controlar la visibilidad a través del parámetro visible. Código de muestra:

terrainProvider : new Cesium.CesiumTerrainProvider({
    
    
    url : URL_CONFIG.SiChuan_TERRAIN,
    isSct : true,//地形服务源自SuperMap iServer发布时需设置isSct为true
    invisibility:true  //是否开启设置地形显隐的功能,默认为false。
}),

【WebGL】¿Cómo realizar la gestión de autoridad de servicio?

[Soluciones] 1. Cambie la autoridad de configuración del servicio en la página de administración de servicios de SuperMap iServer para que los usuarios designados puedan acceder a ella 2.
Solicite una clave de token en el centro de usuarios de SuperMap iServer
3. Configure la clave de token en iClient para que Cesium realice la carga de servicios.

[WebGL] ¿Qué capas pueden configurar múltiples subdominios y cómo configurar múltiples subdominios?

[Solución] 1. Las capas de terreno, imagen, MVT y S3M se pueden configurar con múltiples subdominios.
2. Use el cliente nginx para asignar diferentes direcciones de puerto para acceder a iServer, crear un entorno de subdominio y mejorar el rendimiento. Para la configuración de múltiples subdominios, consulte el artículo: http://support.supermap.com.cn:8090/webgl/examples/TopicDOC/subdomains.html.

【WebGL】¿Cómo lidiar con una fotografía oblicua que ha sido retocada como un solo edificio?

[Causa del problema] La fotografía oblicua retocada, su textura estará relativamente fragmentada y habrá texturas grandes de 4096 * 4096 y superiores, y el almacenamiento oblicuo de acuerdo con el método convencional dará como resultado archivos grandes y carga lenta

[Solución] Se recomienda importarlo como un conjunto de datos del modelo, luego optimizar correctamente el tamaño de la textura y generar un caché para el conjunto de datos del modelo. Para obtener más información, consulte el artículo:
https://blog.csdn.net/supermapsupport/article/details/130404872

[WebGL] ¿Cómo cambiar la velocidad y la dirección del flujo de agua en la capa superficial del agua en 3D?

[Solución] Se puede cambiar a través del parámetro waterSpeed ​​en la clase S3MTilesLayer, y se pasa una cantidad bidimensional, y la magnitud del valor se usa para representar la velocidad, y los valores positivo y negativo de x e y se usan para representar la dirección del flujo de agua. Código de ejemplo: WaterLayer.waterSpeed ​​​​= new Cesium.Cartesian2(-2,2)

[WebGL] ¿Es posible modificar el color de la superficie del agua y la intensidad de las ondas en la parte frontal de la capa de la superficie del agua en 3D?

[Solución] Sí, cambiar el color de la superficie del agua a través del parámetro waterColor en la clase S3MTilesLayer, modificar el tamaño de la ondulación con waterWaveScale

[WebGL] ¿Cómo hacer que la cámara gire sobre sí misma y mire en el sentido de las agujas del reloj?

[Solución] Hay dos métodos,
1. Use el método camera.flyCircle(center), y las coordenadas entrantes son las coordenadas de posición actuales de la cámara,
2. Use el método de bucle setInterval() para especificar cuántas veces cada intervalo, y modifique el parámetro de balanceo de la cámara para que gire

[WebGL] ¿Cómo obtener todos los ID de los modelos BIM?

[Solución] Use el método datasetInfo() para obtener el startid y el endid de la capa. Después de obtener el rango de identificación, construya la matriz de identificación completa usted mismo. Código de muestra:

layer.datasetInfo().then(function(result){
    
    
	console.log(result)
}

【WebGL】¿Cómo configurar el modelo en modo alámbrico?

[Solución] 1. Establezca el estilo de relleno de la capa en "Relleno y contorno": layer.style3D.fillStyle = Cesium.FillStyle.Fill_And_WireFrame; 2. Establezca
el modo de estructura alámbrica: Cesium.WireFrameType.EffectOutline;
el modo de estructura alámbrica se divide en línea de borde de efectos especiales, modo de borde cuadrilátero, modo de borde triangular y modo de borde de boceto

[WebGL] El modelo de nube de puntos láser se establece en color mediante la coloración en capas en iDesktop, pero el color se pierde después de la publicación.

[Causa del problema] Debido a los diferentes mecanismos de representación, el efecto de coloración en capas del escritorio no se puede guardar

[Solución] Use el código front-end para establecer el color de la memoria caché de la nube de puntos láser. Para obtener ejemplos detallados, consulte:
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#S3MTiles_pointCloud

【WebGL】¿Al dibujar una superficie durante la fotografía oblicua y la excavación del terreno, aparece el error "la altura no está definida"?

[Solución] La interfaz de excavación del terreno tiene un parámetro de altura y profundidad, que determina la profundidad de la excavación del terreno. La capa s3m no tiene un parámetro de altura, pero excava toda el área dibujada. Por lo tanto, el parámetro de altura no se puede completar al excavar la capa s3m.

【WebGL】¿Cómo lograr el efecto de flujo de tubería?

[Solución] Hay dos formas: 1. Use el material de la línea de seguimiento, 2. Pegue una imagen con una flecha al crear datos y configure el flujo de textura en la parte delantera. Para conocer los pasos detallados, consulte el artículo:
https://blog.csdn.net/supermapsupport/article/details/102775780

【WebGL】Mapa MVT, después de que el mouse seleccione el objeto resaltado, debe hacer clic manualmente en otras áreas en blanco para liberar. ¿Existe una interfaz para liberar el estado seleccionado?

[Solución] Sí, hay un método de conjunto de selección de liberación releaseSelection() en la clase VectorTilesMap

[WebGL] ¿Cuántas formas hay de realizar la animación de la trayectoria de los objetos?

[Soluciones] Hay 3 tipos.
1. Capas dinámicas (adecuadas para múltiples instancias y múltiples objetos que se mueven a lo largo de diferentes caminos, como las redes de tráfico urbano).
2. Animación de nodos KML (aplicable al movimiento de un solo objeto de modelo a lo largo de una ruta específica, dado que las coordenadas y el tiempo del nodo se registran en archivos, es inconveniente modificarlos).
3. Clase SampledPositionProperty (aplicable a un solo objeto de modelo que se mueve a lo largo de una ruta específica, conveniente para modificar el tiempo, las coordenadas del nodo y la velocidad de ejecución)

【iDesktop】¿Qué debo hacer si solo se muestra una pequeña parte de los datos después de almacenar los datos de la fotografía oblicua en la base de datos?

[Causa del problema] Hay datos con sufijos que no son archivos osgb en la carpeta de mosaicos de datos de fotografía oblicua

[Solución] Elimine los datos con sufijos que no sean el archivo osgbosgb en la carpeta de mosaicos de los datos de fotografía oblicua, y luego genere el archivo de configuración y guárdelo en oblicuo

[iDesktop] Después de almacenar en caché la superficie 3D, al hacer zoom y mover el ángulo de visualización en la escena, la superficie parpadeará

[Causa del problema] Hay superficies superpuestas y habrá superficies parpadeantes al mover y hacer zoom en la perspectiva de la escena

[Solución] Activar la optimización de profundidad de la escena en las propiedades de la escena

[iDesktop] ¿Por qué no se muestra la tarjeta de función de diseño geográfico 3D de iDesktop?

[Solución] Necesita abrir la escena en iDesktop, si aún no existe, el módulo funcional está oculto, puede abrir el módulo funcional en el diseño del entorno

[WebGL] ¿Se pueden cargar y usar directamente en la escena datos en formatos shp y geojson?

[Solución] Para cargar datos de GeoJSON, puede usar la interfaz nativa de Cesium, GeoJsonDataSource. Para obtener información sobre métodos de uso específicos, consulte el documento api http://support.supermap.com.cn:8090/webgl/web/apis/3dwebgl.html, solo busque GeoJsonDataSource. Los archivos shp no se pueden cargar directamente, pero se pueden usar herramientas de código abierto como GDAL para convertirlos en datos GeoJSON para cargarlos.

【WebGL】¿Es posible modificar dinámicamente la posición del observador en el análisis de la línea de visión?

[Solución] Se puede realizar modificando dinámicamente la línea de visión.viewPosition en la parte delantera

【WebGL】Cuando la distancia es muy lejana, la capa de tubería solo muestra la línea, ¿por qué no el modelo?

[Causa del problema] el lod se ve afectado y la capa rugosa se muestra en la distancia

[Solución] Establecer lod de capa, layer.lodRangeScale = 100

[WebGL] Agregue datos de línea geojson en todo el mundo

[Causa del problema] Las coordenadas de los nodos de datos de línea en geojson están en el sistema de coordenadas proyectadas

[Solución] Cambiar los datos a coordenadas de latitud y longitud

[WebGL] ¿Por qué no se carga la capa después de agregar el posicionamiento de la cámara?

[Causa del problema] El código de posicionamiento de la cámara se escribió incorrectamente, lo que provocó que el código posterior no se ejecutara

【Solución】Corregir el código de posicionamiento de la cámara:

scene.camera.setView({
    
    
    destination: new Cesium.Cartesian3.fromDegrees(116.4566, 39.9149, 5323.445971240632),
    orientation: {
    
    
        heading: 3.1612,
        pitch: -1.5188,
        roll: 6.283185307179563
    }
})

【WebGL】¿Cómo configurar la cámara para pasar a la clandestinidad?

【Solución】

viewer.scene.undergroundMode = true; //设置开启地下场景
viewer.scene.screenSpaceCameraController.minimumZoomDistance = -1000; //设置相机最小缩放距离,距离地表-1000米

[WebGL] ¿Por qué se atasca mucho después de usar el controlador para monitorear en el proyecto vue?

[Causa del problema] La definición de atributos como el controlador y el visor en los datos será secuestrada por vue y causará un retraso

[Solución] No defina atributos como controlador y visor en los datos, simplemente sáquelos

[WebGL] Esfera más una imagen de fondo personalizada

[Solución] SingleTileImageryProvider solo admite latitud y longitud. Si se cubre el alcance global, la relación de aspecto de la imagen permanece en 2: 1. Si se configura el rectángulo, la relación de aspecto de la imagen se puede configurar de acuerdo con el rectángulo para evitar que la imagen se estire y afecte el efecto de visualización. el código se muestra a continuación:

viewer.imageryLayers.addImageryProvider(new Cesium.SingleTileImageryProvider({
    
    
    url : './images/worldimage.jpg'
}));

[WebGL] La configuración de resaltado está cubierta por la configuración de capa, ¿cómo configurarla para que no sea bloqueada por el modelo?

[Solución] Puede establecer el modo de objeto seleccionado en un modelo de contorno que no se ocluirá y seleccionar el estilo de visualización del objeto seleccionado. El código es el siguiente:

layer.selectColorType = Cesium.SelectColorType.ALWAYS_SHOW_SILHOUETTE;
layer.selectedColor = Cesium.Color.DEEPSKYBLUE;

El efecto específico se muestra en la figura:

inserte la descripción de la imagen aquí

[WebGL] ¿Qué debo hacer si la valla publicitaria está bloqueada por la tierra?

[Solución]
1. Puede configurar el valor disabledDepthTestDistance para resolver

viewer.entities.add({
    
    
	id: "test",
	position: Cesium.Cartesian3.fromDegrees(longitude, latitude,height),
	billboard: {
    
    
		image: './images/xxxxxx.jpg',
		disableDepthTestDistance:Number.POSITIVE_INFINITY//返回正无穷大
	}
});

2. Establezca viewer.scene.globe. depthTestAgainstTerrain=false para cancelar la prueba de profundidad

【WebGL】Modifica la imagen por defecto en la esfera

[Solución] En el paquete for Cesium, reemplace las imágenes en la carpeta (SuperMap iClient3D 11i (2022) SP1 for Cesium_CH\Build\Cesium\Assets\Textures\NaturalEarthII) con las imágenes que desee.

[WebGL] Habrá un espacio de unos pocos píxeles en el medio cuando la etiqueta canvas o img de la bola de inicialización se muestre junto con el div

[Solución] Agregar display:block a la etiqueta canvas/img

[WebGL] El mismo proyecto apareció al cargar el mapa de Tiandi. La victoria se puede cargar en Mac para acceder, pero el mapa de Tiandi no se puede cargar. La solicitud devuelve una imagen.

[Solución] Comente viewer.scene.terrainProvider.isCreateSkirt = false; para mostrar normalmente

[WebGL] Al ver algunos ejemplos con WebGL desplegado localmente, la tierra no se puede renderizar y solo se muestra el cielo estrellado, pero los ejemplos en el sitio web oficial se pueden renderizar normalmente.

[Solución] La capa de la imagen no está cargada, comente el código de carga de la parte de la imagen o reemplace la imagen del mapa local a la que se puede acceder normalmente.

[WebGL] ¿Cuál es la diferencia entre el método de posicionamiento de cámara setView y flyTo en iClient para Cesium?

[Solución] En iClient para Cesium, setView puede ubicarse directamente en la posición espacial especificada, mientras que flyTo vuela desde la perspectiva actual a una nueva posición espacial.

[WebGL] ¿Cómo vuela el método de posicionamiento de la cámara para ajustar la duración del vuelo en iClient para Cesium?

[Solución] En iClient para Cesium, puede controlar el tiempo de vuelo ajustando el parámetro de duración en flyTo.

[WebGL] ¿Cómo vuela el método de posicionamiento de la cámara para volar dentro de un cierto rango rectangular en iClient para Cesium?

[Solución] En iClient para Cesium, puede configurar el cuadro de rango rectangular especificado mediante el método Cesium.Rectangle.fromDegrees(west, south, east, north). Utilice este rango al posicionar para lograr el posicionamiento. El método de uso es el siguiente.

viewer.camera.flyTo({
    
    
	destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
});

[WebGL] ¿Cómo solucionar el problema de que el navegador descarga el Bin al cargar el modelo GLTF con Bin en iClient para Cesium?

[Solución] Cuando el modelo GLTF se carga en iClient para Cesium y el navegador descarga Bin, se debe principalmente a la nueva versión de GLTF, y el modelo GLTF debe convertirse a través de un complemento de terceros.
Puede usar el software Blender para importar gltf y cargarlo después de exportarlo al formato de archivo único gltf2.0.

[WebGL] ¿Cómo cargar datos geojson a través del método loadjson en iClient para Cesium?

[Solución] Para cargar datos json a través del método de carga en iClient para Cesium, lea la función en json y dibuje a través de entidad. Cómo usar puede referirse al siguiente código

Cesium.loadJson('./data/json/test.json').then(function(jsonData) {
    
    
    for (let i = 0; i < jsonData.features.length; i++) {
    
    
        let pts = [];
        var ifeature = jsonData.features[i];
        var datapoints = ifeature.geometry.coordinates;
        for (let j = 0; j < datapoints.length; j++) {
    
    
            var longitude = datapoints[j][0];
            var latitude = datapoints[j][1];
            pts.push(longitude, latitude)
        }
        var cc = viewer.entities.add({
    
    
            id: i,
            polyline: {
    
    
                positions: Cesium.Cartesian3.fromDegreesArray(pts),
                width: 10,
                material: new Cesium.PolylineOutlineMaterialProperty({
    
    
                    color: Cesium.Color.ORANGE,
                    outlineWidth: 2,
                    outlineColor: Cesium.Color.BLACK,
                }),
            }
        });
    }
});

[WebGL] ¿Cómo modificar los parámetros del elipsoide en iClient para Cesium?

[Solución] En iClient para Cesium, la escena de inicialización de esfera se usa de forma predeterminada. Si necesita cambiarlo a un elipsoide, puede modificar el elipsoide antes de inicializar la esfera. El código de implementación se refiere al siguiente código

var obj = [6378137.0, 6378137.0, 6356752.3142451793];
Cesium.Ellipsoid.WGS84 = Object.freeze(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));
var viewer = new Cesium.Viewer('cesiumContainer');

[WebGL] ¿Cómo modificar la altura de la etiqueta en el mosaico vectorial en iClient para Cesium?

[Solución] Para modificar la altura de la etiqueta de mosaico vectorial en iClient para Cesium, puede usar el método style3D para establecer su bottomAltitude. Este método solo es válido para etiquetas, no para capas de líneas y áreas.

var style3D = new Cesium.Style3D();
//设置底部高程。
style3D.bottomAltitude = 10;
//获取底部高程值。
var altitude = style3D.bottomAltitude;

【WebGL】Después de usar iClient para Cesium 11i para cargar el modelo, ¿qué debo hacer si veo el modelo subterráneo desde la perspectiva de la superficie?

[Solución] En la versión iClient para Cesium 11i, la detección de profundidad de la escena está desactivada de forma predeterminada.Al cargar el modelo, el modelo subterráneo puede correr hacia el suelo. Active la detección profunda para resolverlo.
espectador.escena.globo.profundidadTestAgainstTerrain = verdadero

[WebGL] Al usar iClient para Cesium para hacer clic en el método pickPosition(), ¿cómo resolver la situación en la que las coordenadas de selección son inexactas?

[Solución] En iClient para Cesium, viewer.scene.pickPosition() selecciona el Cartesian3 en la posición correspondiente, que es adecuada para seleccionar la posición de la superficie del modelo y seleccionar las coordenadas de objetos tridimensionales. Pero asegúrese de habilitar la detección de profundidad (viewer.scene.globe. depthTestAgainstTerrain = true) al seleccionar, de lo contrario, las coordenadas de selección serán inexactas.

[WebGL] El sistema de desarrollo es completamente negro cuando se enciende de noche en tiempo real ¿Cómo hacerlo normal durante el día?

[Causa del problema] Los datos en sí no cambian, pero la escena cargada de vista previa cambiará con la hora del sistema.

[Solución]
Puede usar el código para configurar el tiempo de escena fijo cuando se carga el front-end:

// 改变时间设置光照效果
var utc=Cesium.JulianDate.fromDate(new Date("2021/07/04 04:00:00"));
//北京时间=UTC+8=GMT+8
viewer.clockViewModel.currentTime = Cesium.JulianDate.addHours(utc,8,new Cesium.JulianDate());
this.viewer.scene.light = new Cesium.DirectionalLight({
    
     //去除时间原因影响模型颜色
    direction: new Cesium.Cartesian3(0.35492591601301104, -0.8909182691839401, -0.2833588392420772)
})

[WebGL] ¿Es posible cargar mosaicos mvt en el sistema de coordenadas proyectadas 4528?

[Causa del problema] La escena esférica de WebGL es una bola de sistema de coordenadas geográficas y solo se pueden cargar los datos del sistema de coordenadas geográficas o el sistema de coordenadas de proyección Mercator global 3857.

[Soluciones] 1. Use una escena plana para cargar el sistema de coordenadas proyectadas 4528 o cualquier sistema de coordenadas proyectadas 2.
Convierta la proyección de datos original en un sistema de coordenadas geográficas (como 4326) y luego realice el front-end para el uso del front-end.

【WebGL】¿Cómo cambiar el mapa base de la tierra?

[Solución] Cargue una capa de imagen de imagen, Cesium.SingleTileImageryProvider

[WebGL] La nube de puntos del archivo de texto se carga y se utiliza en la interfaz de WebGL.

[Solución] Use la función de caché de nube de puntos de generación de datos 3D de iDesktop o iDesktopX para generar un caché a partir de los datos de la nube de puntos y publique el servicio 3D en el caché usando WebGL frontal.

[WebGL] Use viewer.scene.open() para abrir una escena dos veces, solo tendrá efecto un conjunto de capas, ¿qué debo hacer si quiero generar varios conjuntos de capas?

[Razón del problema] Si se trata de la misma escena de datos. abrir, no hay forma de abrir varias, y diferentes escenas de datos. oepn pueden abrir varias.

[Solución] Si desea abrir más de uno de los mismos datos, se recomienda usar scene.addS3MTilesLayerByScp. Cabe señalar que si desea cargar más de uno de los mismos datos, debe dar diferentes nombres de capa al agregar.
http://support.supermap.com.cn:8090/webgl/docs/Documentation/Scene.html

[WebGL] ¿Cómo realizar el borde del conjunto de datos de superficie de área, que es similar al efecto de contorno dinámico primitivo personalizado similar a earthsdk?

【解决办法】使用自发光纹理或纹理流动或泛光(可加定时器配合)等多种方法调整实现你想要的具体效果,实现路线很多:
https://blog.csdn.net/THEDEAMON/article/details/112967860
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#scanLine
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#airlinesTrailLines
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#emissionTexture
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#tx_lightSource
建议比较简单的实现方式就是直接使用线框线数据而不是面数据,直接做线数据的特效(比如泛光、自发光)

【WebGL】¿Cómo cargar datos de líneas dinámicas no terrestres cerca del suelo?

[Solución] Idea:
cree una nueva fuente de datos, agregue la entidad a la fuente de datos y, al agregar la fuente de datos a viewr.datasources.add(), establezca el atributo de tierra clampToGround: verdadero.
http://support.supermap.com.cn:8090/webgl/docs/Documentation/Viewer.html
http://support.supermap.com.cn:8090/webgl/docs/Documentation/DataSourceCollection.html
http://support.supermap.com.cn:8090/webgl/docs/Documentation/DataSource.html
Publicación: http://support.supermap.com .cn:8090/ webgl/examples/webgl/editor.html#KML_route

[WebGL] ¿Por qué la tubería 3D solo muestra la tubería cuando está muy cerca, y los otros casos son líneas vectoriales?

[Causa del problema] Hay dos motivos para esta situación:
1. Es causado por el nivel de LOD, establezca layer.lodRangeScale = 100
2. Es causado por la altura absoluta de la línea a 0, puede desactivar la detección de profundidad en el extremo frontal, viewer.scene.globe. depthTestAgainstTerrain = true y establecer el suelo

[WebGL] Cuando los datos de superficie 3D están en la escena y hay terreno, la superficie no se mostrará después de hacer zoom. Si no se agrega el terreno, siempre se mostrará la superficie. No sé por qué. (Es normal abrir en el escritorio)

[Solución] Al generar un caché 3D para una superficie 3D, se selecciona el caché en el formato S3M3.0. El caché se carga de forma predeterminada en elipsoide y se puede cargar normalmente después de modificarlo a 2.0.

[WebGL] La etiqueta del mapa temático de etiquetas cargado a través de S3MTilesLabelStyle en la escena esférica se hundirá en el suelo después de hacer zoom. ¿Cómo configurarlo para que siempre se pueda mostrar normalmente en la parte frontal?

[Solución] Hay un método de referencia de altura en esta interfaz, configurando diferentes modos de altura, como pegar modelos. Desactivar también la detección de profundidad

[WebGL] Use el atributo elipse para dibujar un círculo, ¿puede establecer el ancho del borde exterior del círculo?

[Solución] La configuración de la propiedad de ancho de contorno de elipse tampoco es válida en el Cesium nativo.
Actualmente, establecer la propiedad outlineWidth del polígono de la entidad no tiene efecto.
Se recomienda usar un polígono para reemplazar el borde con una línea sólida para lograr el efecto de contorno.

[WebGL] Terrain hidden interface viewer.terrainProvider.visible = falso, no tiene efecto

[Solución] Para hacer que el terreno sea invisible, debe configurar la invisibilidad: verdadero al agregar terreno.
También puede usar el reemplazo de terreno para ocultar el terreno: https://www.jianshu.com/p/42b2457fa0b7

Supongo que te gusta

Origin blog.csdn.net/supermapsupport/article/details/131823478
Recomendado
Clasificación