|
@@ -37,6 +37,11 @@ class Glendale extends BIMAbstract
|
|
|
return in_array($ext, ['las', 'laz', 'ply', 'xyz']);
|
|
|
}
|
|
|
|
|
|
+ private function isOSGBGISModel(string $modelType): bool
|
|
|
+ {
|
|
|
+ return $modelType == 'osgb';
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* 构造query的input传参
|
|
|
* @param \App\BO\BIMFileBO $bimFileBO
|
|
@@ -120,12 +125,30 @@ class Glendale extends BIMAbstract
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * 文件流方式上OSGB GIS模型
|
|
|
+ * @param \Illuminate\Http\UploadedFile $file
|
|
|
+ * @param \App\BO\BIMFileBO $bimFileBO
|
|
|
+ * @return array|null
|
|
|
+ */
|
|
|
+ protected function uploadOSGBModelByStream(UploadedFile $file, BimFileBO $bimFileBO)
|
|
|
+ {
|
|
|
+ return Client::getInstance()->post('/api/app/gismodel/OsgbUploadFile', [
|
|
|
+ 'query' => $this->buildQueryParams($bimFileBO),
|
|
|
+ 'multipart' => [
|
|
|
+ ['name' => 'file', 'contents' => fopen($file, 'r+'), 'filename' => $bimFileBO->name]
|
|
|
+ ],
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
public function uploadFile(UploadedFile $file, BimFileBO $bimFileBO): array
|
|
|
{
|
|
|
if (!empty($bimFileBO->modelDownloadUrl)) {
|
|
|
$result = $this->uploadModelByUrl($bimFileBO);
|
|
|
} elseif ($this->isPointCloudGISModel($bimFileBO->extension)) {
|
|
|
$result = $this->uploadPointCloudModelByStream($file, $bimFileBO);
|
|
|
+ } elseif ($this->isOSGBGISModel($bimFileBO->modelType)) {
|
|
|
+ $result = $this->uploadOSGBModelByStream($file, $bimFileBO);
|
|
|
} else {
|
|
|
$result = $this->uploadModelByStream($file, $bimFileBO);
|
|
|
}
|
|
@@ -191,7 +214,7 @@ class Glendale extends BIMAbstract
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
- if (in_array($file->extension, config('bim.gis_extensions'))) {
|
|
|
+ if (in_array($file->extension, config('bim.gis_extensions')) || ($file->is_bim == 1 && $file->extension == 'zip')) {
|
|
|
$result = Client::getInstance()->post('/api/app/gismodel/QueryModelInfo', [
|
|
|
'query' => [
|
|
|
'LightweightName' => $file->bimFile->bim_data_set_id
|
|
@@ -218,6 +241,10 @@ class Glendale extends BIMAbstract
|
|
|
}
|
|
|
|
|
|
$result = Arr::only($result, ['modelAccessAddress', 'lightweightName', 'fileOwnership', 'floorJsonURL', 'fileType', 'initiatingUser', 'modelType', 'name']);
|
|
|
+ if (isset($result['modelAccessAddress'])) {
|
|
|
+ $result['modelAccessAddress'] = str_replace('http://159.75.168.101:18086', 'https://gelan.autocde.com', $result['modelAccessAddress']);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
$result['stationUrl'] = config('bim.glendale.host');
|
|
|
$result['stationToken'] = config('bim.glendale.token');
|
|
@@ -228,14 +255,4 @@ class Glendale extends BIMAbstract
|
|
|
{
|
|
|
return [];
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- * 获取model的浏览链接
|
|
|
- * @param string $dataSetId
|
|
|
- * @return string
|
|
|
- */
|
|
|
- public function getModelViewLink(string $dataSetId): string
|
|
|
- {
|
|
|
- return config('bim.glendale.view_url') . '/#/webgl?id=' . $dataSetId;
|
|
|
- }
|
|
|
}
|