SuperMap iServer 支持以下类型的三维服务提供者:
配置本地三维服务提供者
配置一个 UGC 本地三维服务提供者,如下所示:
<!-- 本地三维服务提供者--> <provider class="com.supermap.services.providers.UGCRealspaceProvider" name="3DProvider"> <config class="com.supermap.services.providers.UGCRealspaceProviderSetting"> <workspacePath>../../samples/data/Realspace/RealspaceSample.sxwu</workspacePath> <xmlParse>false</xmlParse> </config> </provider>
其中<provider>中的 class 标识的是 UGC 三维服务提供者的实现类,<config>中的 class 标识的是 UGC 三维服务提供者对应的配置类,即 UGCRealspaceProviderSetting,<config>中的内容是对应的配置项。
<workspacePath>表示该服务提供者所用的工作空间的路径。此外,工作空间路径支持从环境变量和系统配置文件中读取。可写为:
<workspacePath>${datapath1}/World.sxwu</workspacePath>详细说明请参见:预设本地工作空间路径
配置 REST 三维服务提供者
配置一个 REST 三维服务提供者,如下所示:
<!-- REST 三维服务提供者--> <provider class="com.supermap.services.providers.RestRealspaceProvider" enabled="true" name="rest3DProvider-test"> <config class="com.supermap.services.providers.RestRealspaceProviderSetting"> <restServiceRootURL>http://localhost:8090/iserver/services/3D-sample/rest</restServiceRootURL> <restProviderCacheConfig> <maxElementsInMemory>1</maxElementsInMemory> <maxSizeOnDisk>2048</maxSizeOnDisk> <timeToLiveSeconds>0</timeToLiveSeconds> <timeToIdleSeconds>0</timeToIdleSeconds> </restProviderCacheConfig> <useCache>true</useCache> </config> </provider>
其中<provider>中的 class 标识的是 REST 三维服务提供者的实现类,<config>中的 class 标识的是 REST 三维服务提供者对应的配置类,即 RestRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <restServiceRootURL>:REST 三维服务地址,指向服务的根资源路径,如 http://localhost:8090/iserver/services/3D-sample/rest。
- <useCache>:是否使用缓存。默认为 true。开启缓存后,对资源的 REST 请求会缓存在本地,下次收到同样的请求就直接在缓存中读取,不需要再向服务端发送。
- <restProviderCacheConfig>:服务提供者历史请求缓存在内存中的存储设置,包括:
- <maxElementsInMemory>:内存中允许存储的最大请求记录数。0代表无限制;1代表不使用内存缓存,默认为1。如果不为1,则优先向内存中存储请求记录。
- <maxSizeOnDisk>:磁盘最大容量。单位为 MB,默认大小为2048MB。
- <timeToLiveSeconds>:设置缓存存活的时间上限,超时后会自动清除缓存。从创建记录开始计算,单位为秒,默认为0,代表缓存永久存活。
- <timeToIdleSeconds>:设置缓存闲置的时间上限,超时后会自动清除缓存。从上次被访问开始计算,单位为秒,默认为0,代表缓存永久存活。
- <token>:启用安全机制的情况下,访问受保护的 REST 资源需要提供Token 令牌。
配置 MongoDB 三维服务提供者
配置一个 MongoDB 三维服务提供者,如下所示:
<!-- MongoDB 三维服务提供者--> <provider class="com.supermap.services.providers.MongoDBRealspaceProvider" enabled="true" name="mongoDB3DProvider-scene"> <config class="com.supermap.services.providers.MongoDBRealspaceProviderSetting"> <serverAdresses> <string>192.168.120.47:27017</string> </serverAdresses> <database>smtiles</database> <username>iserver</username> <password>iserver</password> <tilesetNames> <string>1181328118</string> </tilesetNames> </config> </provider>
其中<provider>中的 class 标识的是 MongoDB 三维服务提供者的实现类,<config>中的 class 标识的是 MongoDB 三维服务提供者对应的配置类,即 MongoDBRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <serverAdresses>:MongoDB 服务地址。
- <tilesetNames>:切片集数组。若参数为空,即发布 MongoDB 数据库中所有的三维切片集。
- <database>:用来存储地图瓦片的数据库。默认使用名为 smtiles 的数据库。
- <username>:具有访问该数据库权限的用户。
- <password>:该用户的密码。
配置三维切片缓存服务提供者
配置一个三维切片缓存服务提供者,如下所示:
<!-- 三维切片缓存服务提供者--> <provider class="com.supermap.services.providers.LocalRealspaceProvider" enabled="true" name="local3DCache-osgb"> <config class="com.supermap.services.providers.LocalRealspaceProviderSetting"> <configFile>..../samples/Data/3D_Cache/osgb/jinjiang_Compressed-test.scp</configFile> <isMultiInstance>false</isMultiInstance> <clipregions> <com.supermap.services.components.commontypes.georegion3d> <id>0</id> <points class="com.supermap.services.components.commontypes.Point3D-array"> <com.supermap.services.components.commontypes.point3d> <x>121.0</x> <y>38.0</y> <z>-6.0</z> </com.supermap.services.components.commontypes.point3d> <com.supermap.services.components.commontypes.point3d> <x>121.0</x> <y>38.0</y> <z>-48.0</z> </com.supermap.services.components.commontypes.point3d> <com.supermap.services.components.commontypes.point3d> <x>121.0</x> <y>38.0</y> <z>-49.0</z> </com.supermap.services.components.commontypes.point3d> </points> <parts> <int>3</int> </parts> <type>REGION3D</type> <rotationx>0.0</rotationx> <rotationy>0.0</rotationy> <rotationz>0.0</rotationz> <scalex>0.0</scalex> <scaley>0.0</scaley> <scalez>0.0</scalez> </com.supermap.services.components.commontypes.georegion3d> </clipregions> </config> </provider>
其中<provider>中的 class 标识的是三维切片缓存服务提供者的实现类,<config>中的 class 标识的是三维切片缓存服务提供者对应的配置类,即 LocalRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <configFile>:缓存配置文件的路径。
- <isMultiInstance>:是否支持多实例。
- <clipRegions>:裁剪范围。
- <rotationx>:三维几何对象沿 X 轴方向的旋转角度,单位为度。
- <rotationY>:三维几何对象沿 Y轴方向的旋转角度,单位为度。
- <rotationZ>:三维几何对象沿 Z 轴方向的旋转角度,单位为度。
- <scalex>:三维几何对象沿 X 轴方向的缩放比例。
- <scaley>:三维几何对象沿 Y 轴方向的缩放比例。
- <scalez>:三维几何对象沿 Z轴方向的缩放比例。
配置3DTiles缓存服务提供者
配置一个3DTiles缓存服务提供者:
<!--3DTiles缓存服务提供者--> <provider class="com.supermap.services.providers.ThreeDTilesRealspaceProvider" enabled="true" name="ThreeDTilesCache-attribute"> <config class="com.supermap.services.providers.ThreeDTilesRealspaceProviderSetting"> <configFile>E:/test-data/pointHanging/NewDGN/attribute.json</configFile> <isMultiInstance>false</isMultiInstance> </config> </provider>
其中<provider>中的 class 标识的是3DTiles缓存服务提供者的实现类,<config>中的 class 标识的是3DTiles缓存服务提供者对应的配置类,即 ThreeDTilesRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <configFile>:缓存配置文件的路径。
- <isMultiInstance>:是否支持多实例。
配置 OSS 三维瓦片缓存服务提供者(已过时)
配置一个 OSS 三维瓦片缓存服务提供者:
<!-- 三维切片缓存服务提供者--> <provider class="com.supermap.services.providers.OssRealspaceProvider" enabled="true" name="oss3DCache-233232"> <config class="com.supermap.services.providers.OssRealspaceProviderSetting"> <configPath>Config.scp</configPath> <ossWebsite>http://oss-cn-beijing.aliyuncs.com</ossWebsite> <bucketName>233232</bucketName> <accessKeyId>LTAI4G8HxYSCzAsbSuperMap</accessKeyId> <accessKeySecret>GQDvAQ2UXkjrwrtVo0cOVX1SuperMap</accessKeySecret> <isMultiInstance>false</isMultiInstance> <cacheKey>SuperMapUXkjrwrtVo0</cacheKey> </config> </provider>
其中<provider>中的 class 标识的是三维瓦片缓存服务提供者的实现类,<config>中的 class 标识的是 OSS 三维瓦片缓存服务提供者对应的配置类,即 OssRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <configPath>:缓存配置文件的路径。
- <ossWebsite>:需要发布的 OSS 对象存储的地址,如 http://oss-cn-beijing.aliyuncs.com
- <bucketName>:需要发布的 OSS 存储空间的名称
- <accessKeyId>:获取阿里云云产品 OpenAPI 接口授权时需要的 ID
- <accessKeySecret>:获取阿里云云产品 OpenAPI 接口授权时需要的 Secret
- <isMultiInstance>:是否支持多实例。
- <cacheKey>:缓存配置文件的密钥。
配置 S3 三维瓦片缓存服务提供者
配置一个 S3 三维瓦片缓存服务提供者:
<!-- S3 三维瓦片缓存服务提供者--> <provider class="com.supermap.services.providers.SuperMapTilesRealspaceProvider" enabled="true" name="s33DCache-sichuanImage-2"> <config class="com.supermap.services.providers.SuperMapTilesRealspaceProviderSetting"> <configFile>/sct/sichuan_Image/sichuan_Image.sci3d</configFile> <s3ConnectionInfo> <endpoint>http://172.16.1.1:9090</endpoint> <region>us-east-1</region> <accessKey>minioadmin</accessKey> <secretKey>minioadmin</secretKey> </s3ConnectionInfo> <cacheKey>123456</cacheKey> <isMultiInstance>false</isMultiInstance> </config> </provider>
其中<provider>中的 class 标识的是 S3 三维瓦片缓存服务提供者的实现类,<config>中的 class 标识的是 S3 三维瓦片缓存服务提供者对应的配置类,即 SuperMapTilesRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <s3ConnectionInfo>:S3 对象存储的连接信息。
- <accessKey>:访问密钥 ID。与私有访问密钥关联的唯一标识符;访问密钥 ID 和私有访问密钥一起使用,对请求进行加密签名。
- <secretKey>:与访问密钥 ID 结合使用的私有访问密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。
- <region>:对象存储服务中桶 (Bucket )所在的区域,当存储类型为 Amazon S3 对象存储时,该参数为必填项。
- <endpoint>: 终端节点即对象存储服务在不同区域的区域域名,用于处理各自区域的访问请求。如 http(s)://obs.cn-north-4.myhuaweicloud.com。如果使用 MinIO 则配置域名时应该使用 TCP 端口。
- <configFile>:对象存储中的瓦片配置文件的路径,如 /supermap/world/world.sci3d,其中目录第一级为桶 (bucket) 名
- <cacheKey>:三维缓存密钥。
- <isMultiInstance>:是否支持多实例。
配置 UGCV5(MVT) 三维服务提供者
配置一个 UGCV5(MVT) 三维服务提供者:
<!--UGCV5(MVT) 三维服务提供者--> <provider class="com.supermap.services.providers.MVTTileRealspaceProvider" enabled="true" name="3Dmvt-ShiJieDiTuDay"> <config class="com.supermap.services.providers.ThreeDTilesRealspaceProviderSetting"> <configFile>F:/世界地图_Day/世界地图_Day.sci</configFile> <isMultiInstance>false</isMultiInstance> </config> </provider>
其中 <provider> 中的 class 标识的是 UGCV5(MVT) 三维服务提供者的实现类,<config>中的 class 标识的是 UGCV5(MVT) 三维服务提供者对应的配置类,即 ThreeDTilesRealspaceProviderSetting,<config>中的内容是对应的配置项。包括:
- <configFile>:UGCV5 瓦片配置文件的路径,如 F:/世界地图_Day/世界地图_Day.sci
- <isMultiInstance>:是否支持多实例。