Cargas de cesio modelo de fotografía oblicua 3dTiles

Prólogo: novato Xiaobai, proceso de exploración preliminar.

Una. Configuración del entorno Java y Tomcat

tomcat8.0.47 versión, JAVA 8
Inserte la descripción de la imagen aquí

1. Instale JAVA y establezca variables de entorno

JAVA se puede instalar normalmente sin cambiar el directorio de instalación.
Configure las variables de entorno JAVA_HOME y PATH:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
ingrese donde java para verificar el directorio de instalación de java, si es el directorio de instalación en este momento, significa que la instalación es correcta:
Inserte la descripción de la imagen aquí

2. Instale la versión verde de tomcat

Descomprímalo y colóquelo en el directorio especificado, y luego configure las variables de entorno.
Nueva variable de entorno:

CATALINA_BASE C: \ tomcat \ apache-tomcat-8.0.47
CATALINA_HOME C: \ tomcat \ apache-tomcat-8.0.47
RUTA% CATALINA_HOME% \ lib;% CATALINA_HOME% \ bin;
agregar al final

Configure el servicio tomcat y el
servicio de instalación de inicio automático ---- install.bat
Cree el archivo install.bat en el directorio C: \ tomcat \ apache-tomcat-8.0.47 y luego copie el código intermedio del siguiente segmento de línea en este archivo y guárdalo.

@echo off
echo "开始执行安装"
echo 注册Tomcat8为系统服务

call %~dp0%bin/service.bat install
echo 设置Tomcat8服务自动启动
sc config Tomcat8 start= auto

echo 启动Tomcat8
net start Tomcat8

echo "安装完成"
pause

Una vez completada la copia, haga clic con el botón derecho para ejecutar install.bat en modo administrador. Si la instalación se realiza correctamente, debería poder ver el servicio tomcat en la lista de servicios.

Desinstalar servicio ---- delete.bat
Si la instalación no se realiza correctamente, puede crear un archivo delete.bat para desinstalar el servicio. Copie el código en el medio del siguiente segmento de línea en el archivo delete.bat.

@echo off
echo "开始执行卸载"

echo 停止Tomcat8服务
net stop Tomcat8

echo 删除Tomcat8服务
call %~dp0%bin/service.bat remove

echo "卸载完成"
pause

Ejecute el archivo delete.bat como administrador para eliminar el servicio tomcat generado.
Luego haga clic derecho para ejecutar install.bat en modo administrador. Si la instalación es exitosa, debería poder ver el servicio tomcat en la lista de servicios.

Interfaz de acceso de Tomcat: http: // localhost: 8080 /

3. Problemas entre dominios

(1) Modifique y agregue código en el archivo web.xml:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

<filter>
	<filter-name>CORS</filter-name>
	<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
	<init-param>
		<param-name>cors.allowOrigin</param-name>
		<param-value>*</param-value>
	</init-param>
	<init-param>
		<param-name>cors.supportedMethods</param-name>
		<param-value>GET,POST,HEAD,PUT,DELETE</param-value>
	</init-param>
	<init-param>
		<param-name>cors.supportedHeaders</param-name>
		<param-value>Accept,Origin,X-Requested-With,Content-Type,Last-Modified</param-value>
	</init-param>
	<init-param>
		<param-name>cors.exposedHeaders</param-name>
		<param-value>Set-Cookie</param-value>
	</init-param>
	<init-param>
		<param-name>cors.supportsCredentials</param-name>
		<param-value>true</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>CORS</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

(2) Agregue el paquete de procesamiento de dominio cruzado correspondiente:
Inserte la descripción de la imagen aquí
dirección de descarga: https://download.csdn.net/download/caozl1132/11759866

dos. Instalación e implementación de cesio

Dirección de descarga del sitio web oficial: https://cesium.com/downloads/

Descargue el programa y colóquelo en Tomcat Webapp:
Inserte la descripción de la imagen aquí
puede crear su propia carpeta de proyecto y crear su propio archivo HTML en la carpeta. La carpeta de prueba se crea aquí, puede copiar los archivos originales de HelloWorld a la prueba y modificarla sobre la base:
Inserte la descripción de la imagen aquí
vea la aplicación a través de la siguiente dirección:
Inserte la descripción de la imagen aquí

Tres. Publicar modelo 3dTiles

1. Copie y publique el modelo 3D

Copie la carpeta Scene del modelo 3D a la carpeta de la aplicación web: Al
Inserte la descripción de la imagen aquí
cargar, cargue el archivo json del modelo test3d correspondiente:
Inserte la descripción de la imagen aquí
Cargue parte del código del modelo:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Ajuste de la posición del modelo

Es posible que el modelo no esté en línea con el sistema de coordenadas de la esfera actual cuando se produce, lo que hace que flote en el aire. La posición del modelo se puede ajustar ajustando los parámetros de traslación del modelo:
Inserte la descripción de la imagen aquí

cuatro. Agregar datos de Shapefile

(1) Copie los datos.
Cargue a través de la biblioteca CesiumVectorTile.js proporcionada por Internet. Dirección de descarga: https://download.csdn.net/download/suntongxue100/12715639
Luego copie los datos del shapefile de la carretera en la carpeta Cesium:
Inserte la descripción de la imagen aquí
(2 ) Código
Agregar referencia:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Efecto de visualización:
Inserte la descripción de la imagen aquí
Problema restante: En la actualidad, la visualización de datos del shapefile estará cubierta por el modelo 3D, y todavía estamos buscando una manera de ajustar la visualización del modelo 3D.

Fives. Incrementar el terreno

Para crear datos de corte dem, use la herramienta gdal2srtmtiles y consulte el blog para obtener la dirección de descarga de la herramienta: https://blog.csdn.net/qq_36377037/article/details/86300330

La documentación de uso de la herramienta es muy completa, pero parece haber algunos problemas en este momento, y la carga del front-end perderá mosaicos.

Colocación de la rebanada preparada:
Inserte la descripción de la imagen aquí
carga de código:
Inserte la descripción de la imagen aquí
efecto general:
Inserte la descripción de la imagen aquí
código completo:

<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Use correct character set. -->
    <meta charset="utf-8" />
    <!-- Tell IE to use the latest, best version. -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"
    />
    <title>test</title>
    <script src="../Build/Cesium/Cesium.js"></script>
	<script src="../js/CesiumVectorTile.js"></script>
    <style>
      @import url(../Build/Cesium/Widgets/widgets.css);
      html,
      body,
      #cesiumContainer {
     
     
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
      }
    </style>
  </head>
  <body>
    <div id="cesiumContainer"></div>
    <script>
      //var viewer = new Cesium.Viewer("cesiumContainer");
	  var terrainProvider = new Cesium.CesiumTerrainProvider({
     
      url: "../terraintiles" });
	   var viewer = new Cesium.Viewer('cesiumContainer',{
     
     
	   terrainProvider:terrainProvider,
       animation:false,       //是否显示动画控件
       homeButton:true,       //是否显示home键
       //geocoder:false,         //是否显示地名查找控件        如果设置为true,则无法查询
       baseLayerPicker:false, //是否显示图层选择控件
       timeline:false,        //是否显示时间线控件
       fullscreenButton:true, //是否全屏显示
       scene3DOnly:true,     //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
       infoBox:true,         //是否显示点击要素之后显示的信息
       sceneModePicker:false,  //是否显示投影方式控件  三维/二维
       navigationInstructionsInitiallyVisible:false,
       navigationHelpButton:false,     //是否显示帮助信息控件
       selectionIndicator:false,        //是否显示指示器组件
       //加载谷歌卫星影像
	   imageryProvider : new Cesium.UrlTemplateImageryProvider({
     
     url:"http://mt1.google.cn/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}&s=Gali"}) 
       });
       
		viewer.scene.globe.depthTestAgainstTerrain = true;    //make the vector features stick to the terrain
		viewer._cesiumWidget._creditContainer.style.display = "none";  //	去除版权信息         
       			
	   //var tileset = new Cesium.Cesium3DTileset({ url: modeldata/3Dtilesdata(3839) });
       var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
     
         url: 'http://192.168.64.236:8080/Scene/test3d.json',
		maximumScreenSpaceError: 2,
		maximumNumberOfLoadedTiles: 1000
		})); 
		
		//move
		var translation=Cesium.Cartesian3.fromArray([20,50,-1aa0]);
		m= Cesium.Matrix4.fromTranslation(translation);
		//move生效
		tileset._modelMatrix = m;
		
		viewer.scene.primitives.add(tileset);      
      	   
       tileset.readyPromise.then(function(tileset) {
     
     
    	    viewer.scene.primitives.add(tileset);
    	    viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.5, -0.2, tileset.boundingSphere.radius * 1.0));
    	}).otherwise(function(error) {
     
     
    	    console.log(error);
    	});
		

		//load shpfile		
	  var VectorTileImageryProvider = Cesium.VectorTileImageryProvider;
				
	  var roadsshp = new VectorTileImageryProvider({
     
     
            source: "../shp/roads.shp",
            defaultStyle: {
     
     
                outlineColor: "rgb(255,0,0)",
                lineWidth: 5
        });
		
		
        roadsshp.readyPromise.then(function () {
     
     
            viewer.imageryLayers.addImageryProvider(roadsshp);
        });
		
    </script>
  </body>
</html>

Supongo que te gusta

Origin blog.csdn.net/suntongxue100/article/details/108034719
Recomendado
Clasificación