mapillary-js
Version:
A WebGL interactive street imagery library
64 lines (54 loc) • 1.86 kB
text/typescript
export class GraphQueryCreator {
public readonly imagesPath: string;
public readonly sequencePath: string;
public readonly coreFields: string[];
public readonly idFields: string[];
public readonly spatialFields: string[];
public readonly imageTileFields: string[];
private readonly _imageTilesPath: string;
constructor() {
this.imagesPath = 'images';
this.sequencePath = 'image_ids';
this._imageTilesPath = 'tiles';
this.coreFields = ['computed_geometry', 'geometry', 'sequence'];
this.idFields = ['id'];
this.spatialFields = [
'altitude',
'atomic_scale',
'camera_parameters',
'camera_type',
'captured_at',
'compass_angle',
'computed_altitude',
'computed_compass_angle',
'computed_rotation',
'creator',
'exif_orientation',
'height',
'merge_cc',
'mesh',
'organization',
'quality_score',
'sfm_cluster',
'thumb_1024_url',
'thumb_2048_url',
'width',
];
this.imageTileFields = ['url', 'z', 'x', 'y'];
}
public images(imageIds: string[], fields: string[]): string {
return `image_ids=${imageIds.join(',')}&fields=${fields.join(',')}`;
}
public imagesS2(cellId: string, fields: string[]): string {
return `s2=${cellId}&fields=${fields.join(',')}`;
}
public imageTiles(z: number, fields: string[]): string {
return `z=${z}&fields=${fields.join(',')}`;
}
public imageTilesPath(imageId: string): string {
return `${imageId}/${this._imageTilesPath}`;
}
public sequence(sequenceId: string): string {
return `sequence_id=${sequenceId}`;
}
}