import HTTP from "../HTTP";
import { Dataset, Dataset3D, PointCloudDataset, Scene } from "./CloudApiModel";
import Resource from "../Resource";
import SceneLoader from "../SceneLoader";
import GeoJSON from "../GeoJSON";
/**
* Mapray Cloudへアクセスするためのクラスです。
*
* このクラスを利用するには事前にMapray Cloudアカウントを作成する必要があります。
* [https://cloud.mapray.com](https://cloud.mapray.com/) からサインアップすることができます。
*
* 事前に下記の情報を調べておきます。
*
* - User ID:
* Mapray Cloudの[ユーザー情報ページ](https://cloud.mapray.com/settings)から確認します。
* 右上メニューのAccountメニューからこのページを開くことができます。
*
* - Token:
* Mapray Cloudの[Tokenページ](https://cloud.mapray.com/dashboard)でトークンを作成します。
* 上部のTokensタブからこのページを開くことができます。
*
* - データセット等のID:
* Mapray Cloudへデータをアップロードし、そのデータを使用するには、[データセットページ](https://cloud.mapray.com/datasetslist)
* からGeoJsonやglTFデータをアップロードしておき、アップロードしたデータのIDを確認します。
*
* MaprayCloudバージョンごとに具象クラスが定義されています。
* 利用するバージョンのクラスを利用します。
*
* | Version | Class |
* |---------|-----------------|
* | v1 | [mapray.cloud.CloudApiV1](mapray.cloud.CloudApiV1-1.html) |
* | v2 | [mapray.cloud.CloudApiV2](mapray.cloud.CloudApiV2-1.html) |
*
* MaprayCloudへアクセスする関数は下記のように分類されます。
*
* - `get***AsResource()`:
* Maprayの各種ローダは、Resourceクラスを受け取るようになっています。[[mapray.GeoJSONLoader]]
*
* - `load***()`:
* 適切なクラスのインスタンスを返却します。
*
* - `get***()`:
* 最も低レベルのAPI呼び出しを行う。返却値はJSONです。
*/
declare abstract class CloudApi {
readonly version: string;
readonly basePath: string;
private _header_key;
private _header_value;
/**
* @param version
* @param basePath
* @param header_key header key for cloud api
* @param header_value header value for cloud api
*/
constructor(version: string, basePath: string | undefined, header_key: string, header_value: string);
/**
* データセットのリストを取得します。
* ページごとにデータセットリストを取得します。
*
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return データセットの配列
*/
loadDatasets(page?: number, limit?: number): Promise;
/**
* 指定したIDのデータセットを取得します。
* @param datasetId データセットのID
* @return データセット
*/
loadDataset(datasetId: string): Promise;
/**
* 3Dデータセットのリストを取得します。
* ページごとにデータセットリストを取得します。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return 3Dデータセットの配列
*/
load3DDatasets(page?: number, limit?: number): Promise;
/**
* 指定したIDの3Dデータセットを取得します。
* @param datasetId
* @return 3Dデータセット
*/
load3DDataset(datasetId: string): Promise;
/**
* 点群データセットのリストを取得します。
* ページごとにデータセットリストを取得します。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return 点群データセットの配列
*/
loadPointCloudDatasets(page?: number, limit?: number): Promise;
/**
* 指定したIDの点群データセットを取得します。
* @param datasetId データセットID
* @return 点群データセット
*/
loadPointCloudDataset(datasetId: string): Promise;
/**
* シーンのリストを取得します。
* ページごとにシーンリストを取得します。
*
* *CloudApiV2でのみ対応しています。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return シーンの配列
*/
loadScenes(page?: number, limit?: number): Promise;
/**
* 指定したIDのシーンを取得します。
*
* *CloudApiV2でのみ対応しています。
* @param sceneId シーンのID
* @return シーン
*/
loadScene(sceneId: string): Promise;
/**
* 指定したIDのデータセットをリソースとして取得します。
* @param datasetId データセットID
* @return データセットのリソース
*/
getDatasetAsResource(datasetId: string): Resource;
/**
* 指定したIDの3Dデータセットのシーンファイルをリソースとして取得します。
* @param datasetId データセットIDのリスト
* @return 3Dデータセットのリソース
*/
get3DDatasetAsResource(datasetIds: string[]): Resource;
/**
* 指定したIDの点群データセットの定義ファイルをリソースとして取得します。
* @param datasetId データセットID
* @return 点群データのリソース
*/
getPointCloudDatasetAsResource(datasetId: string): Resource;
/**
* 指定したIDのシーンのシーンファイルをリソースとして取得します。
*
* *CloudApiV2でのみ対応しています。
* @param sceneId シーンID
* @return シーンのリソース
*/
getSceneAsResource(sceneId: string): Resource;
/**
* データセットリストを取得します
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return json[]
*/
abstract getDatasets(page: number, limit: number): Promise;
/**
* 登録されているデータセットの数を取得します
* @returns json
*/
abstract countDatasets(): Promise;
/**
* get dataset
* @param datasetId
* @return json
*/
abstract getDataset(datasetId: string): Promise;
/**
* GeoJSONの内容を取得します。
* @param datasetId データセットID
* @return json
*/
abstract getFeatures(datasetId: string): Promise;
/**
* 3Dデータセットのリストを取得します。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return json
*/
abstract get3DDatasets(page: number, limit: number): Promise;
/**
* 登録されている3Dデータセットの数を取得します
* @returns json
*/
abstract count3DDatasets(): Promise;
/**
* 3Dデータセットに含まれる scene情報 を取得します。
* @param datasetIds
* @return シーンファイルの実体
*/
abstract get3DDatasetScene(datasetIds: string | string[]): Promise;
/**
* 点群データセットリストを取得します。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return json
*/
abstract getPointCloudDatasets(page: number, limit: number): Promise;
/**
* 登録されている点群データセットの数を取得します
* @returns json
*/
abstract countPointCloudDatasets(): Promise;
/**
* 点群データセットを取得します。
* @param datasetId データセットId
* @return json
*/
abstract getPointCloudDataset(datasetId: string): Promise;
/**
* シーンリストを取得します。
*
* *CloudApiV2でのみ対応しています。
* @param page 取得する要素のページ番号
* @param limit 1ページに含まれる要素数。最大100まで指定することができます。
* @return json
*/
abstract getScenes(page: number, limit: number): Promise;
/**
* シーンを取得します。
*
* *CloudApiV2でのみ対応しています。
* @param sceneId シーンId
* @return json
*/
abstract getScene(sceneId: string): Promise;
/**
* シーンファイルを取得します。
*
* *CloudApiV2でのみ対応しています。
* @param sceneId シーンId
* @return json
*/
abstract getSceneContent(sceneId: string): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected get(api: string, args: string[], query?: HTTP.Query, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected post(api: string, args: string[], query?: HTTP.Query, body?: HTTP.Body, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected patch(api: string, args: string[], query?: HTTP.Query, body?: HTTP.Body, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected put(api: string, args: string[], query?: HTTP.Query, body?: HTTP.Body, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected delete(api: string, args: string[], query?: HTTP.Query, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected fetchAPI(method: string, api: string, args: string[], query?: HTTP.Query, body?: HTTP.Body, option?: {}): Promise;
/**
* 低レベルAPI。このクラスの別関数から呼び出される。
* @return json
*/
protected fetch(method: string, url: string, query?: HTTP.Query, body?: HTTP.Body, option?: RequestInit): Promise;
}
declare namespace CloudApi {
interface FeatureRequestJson {
}
interface LoadDatasetsJson {
}
enum TokenType {
/** api key */
API_KEY = "@@_CloudApi.TokenType.API_KEY",
/** access token */
ACCESS_TOKEN = "@@_CloudApi.TokenType.ACCESS_TOKEN"
}
}
export default CloudApi;
//# sourceMappingURL=CloudApi.d.ts.map