@carto/api-client 0.5.31 → 0.5.32-alpha.13acc23.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/build/api-client.cjs +300 -3
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.d.cts +42 -5
- package/build/api-client.d.ts +42 -5
- package/build/api-client.js +289 -3
- package/build/api-client.js.map +1 -1
- package/package.json +2 -2
- package/src/fetch-map/layer-map.ts +48 -0
- package/src/fetch-map/parse-map.ts +108 -10
- package/src/fetch-map/pattern-atlas-baked.ts +56 -0
- package/src/fetch-map/pattern-atlas-runtime.ts +139 -0
- package/src/fetch-map/pattern-atlas.ts +21 -0
- package/src/fetch-map/patterns/checker-large.png +0 -0
- package/src/fetch-map/patterns/checker-medium.png +0 -0
- package/src/fetch-map/patterns/checker-small.png +0 -0
- package/src/fetch-map/patterns/cross-hatch-large.png +0 -0
- package/src/fetch-map/patterns/cross-hatch-medium.png +0 -0
- package/src/fetch-map/patterns/cross-hatch-small.png +0 -0
- package/src/fetch-map/patterns/diag-left-large.png +0 -0
- package/src/fetch-map/patterns/diag-left-medium.png +0 -0
- package/src/fetch-map/patterns/diag-left-small.png +0 -0
- package/src/fetch-map/patterns/diag-right-large.png +0 -0
- package/src/fetch-map/patterns/diag-right-medium.png +0 -0
- package/src/fetch-map/patterns/diag-right-small.png +0 -0
- package/src/fetch-map/patterns/dots-large.png +0 -0
- package/src/fetch-map/patterns/dots-medium.png +0 -0
- package/src/fetch-map/patterns/dots-small.png +0 -0
- package/src/fetch-map/patterns/hlines-large.png +0 -0
- package/src/fetch-map/patterns/hlines-medium.png +0 -0
- package/src/fetch-map/patterns/hlines-small.png +0 -0
- package/src/fetch-map/patterns/solid.png +0 -0
- package/src/fetch-map/patterns/vlines-large.png +0 -0
- package/src/fetch-map/patterns/vlines-medium.png +0 -0
- package/src/fetch-map/patterns/vlines-small.png +0 -0
- package/src/fetch-map/types.ts +44 -0
- package/src/global.d.ts +10 -0
package/build/api-client.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Polygon, MultiPolygon, Feature, BBox, FeatureCollection, Geometry } from 'geojson';
|
|
2
|
+
import { BinaryFeature, BinaryFeatureCollection } from '@loaders.gl/schema';
|
|
3
3
|
import jsep from 'jsep';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -863,6 +863,16 @@ declare function getIconUrlAccessor(field: VisualChannelField | null | undefined
|
|
|
863
863
|
maxIconSize: number;
|
|
864
864
|
useMaskedIcons?: boolean;
|
|
865
865
|
}, data: any): any;
|
|
866
|
+
declare function getLineStyleAccessor(field: VisualChannelField, range: LineStyleRange, data: any): {
|
|
867
|
+
accessor: any;
|
|
868
|
+
domain: string[];
|
|
869
|
+
range: [number, number][];
|
|
870
|
+
};
|
|
871
|
+
declare function getFillPatternAccessor(field: VisualChannelField, range: FillPatternRange, density: 'small' | 'medium' | 'large' | undefined, data: any): {
|
|
872
|
+
accessor: any;
|
|
873
|
+
domain: string[];
|
|
874
|
+
range: string[];
|
|
875
|
+
};
|
|
866
876
|
declare function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number;
|
|
867
877
|
type Accessor = number | ((d: any, i: any) => number);
|
|
868
878
|
declare function negateAccessor(accessor: Accessor): Accessor;
|
|
@@ -908,6 +918,10 @@ type VisualChannels = {
|
|
|
908
918
|
sizeScale?: ScaleType;
|
|
909
919
|
strokeColorField?: VisualChannelField;
|
|
910
920
|
strokeColorScale?: ScaleType;
|
|
921
|
+
lineStyleField?: VisualChannelField;
|
|
922
|
+
lineStyleScale?: ScaleType;
|
|
923
|
+
fillPatternField?: VisualChannelField;
|
|
924
|
+
fillPatternScale?: ScaleType;
|
|
911
925
|
heightField?: VisualChannelField;
|
|
912
926
|
heightScale?: ScaleType;
|
|
913
927
|
weightField?: VisualChannelField;
|
|
@@ -928,6 +942,20 @@ type CustomMarkersRange = {
|
|
|
928
942
|
}[];
|
|
929
943
|
othersMarker?: string;
|
|
930
944
|
};
|
|
945
|
+
type LineStyleRange = {
|
|
946
|
+
dashArrayMap: {
|
|
947
|
+
value: string;
|
|
948
|
+
dashArray: [number, number];
|
|
949
|
+
}[];
|
|
950
|
+
othersDashArray?: [number, number];
|
|
951
|
+
};
|
|
952
|
+
type FillPatternRange = {
|
|
953
|
+
patternMap: {
|
|
954
|
+
value: string;
|
|
955
|
+
pattern: string;
|
|
956
|
+
}[];
|
|
957
|
+
othersPattern?: string;
|
|
958
|
+
};
|
|
931
959
|
type ColorBand = 'red' | 'green' | 'blue' | 'alpha';
|
|
932
960
|
type RasterLayerConfigColorBand = {
|
|
933
961
|
band: ColorBand;
|
|
@@ -963,6 +991,15 @@ type VisConfig = {
|
|
|
963
991
|
strokeColorAggregationDomain?: [number, number];
|
|
964
992
|
strokeOpacity?: number;
|
|
965
993
|
strokeColorRange?: ColorRange;
|
|
994
|
+
stroked?: boolean;
|
|
995
|
+
lineStyle?: 'solid' | 'dashed' | 'dotted';
|
|
996
|
+
dashArray?: [number, number];
|
|
997
|
+
lineStyleRange?: LineStyleRange | null;
|
|
998
|
+
fillPatternEnabled?: boolean;
|
|
999
|
+
fillPattern?: string;
|
|
1000
|
+
fillPatternDensity?: 'small' | 'medium' | 'large';
|
|
1001
|
+
fillPatternSize?: number;
|
|
1002
|
+
fillPatternRange?: FillPatternRange | null;
|
|
966
1003
|
heightRange?: number[];
|
|
967
1004
|
heightAggregation?: string;
|
|
968
1005
|
heightAggregationExp?: string;
|
|
@@ -1149,9 +1186,9 @@ type Scale = {
|
|
|
1149
1186
|
domain?: string[] | number[];
|
|
1150
1187
|
/** Domain of the user to construct d3 scale */
|
|
1151
1188
|
scaleDomain?: string[] | number[];
|
|
1152
|
-
range?: string[] | number[];
|
|
1189
|
+
range?: string[] | number[] | number[][];
|
|
1153
1190
|
};
|
|
1154
|
-
type ScaleKey = 'fillColor' | 'pointRadius' | 'lineColor' | 'lineWidth' | 'elevation' | 'weight';
|
|
1191
|
+
type ScaleKey = 'fillColor' | 'pointRadius' | 'lineColor' | 'lineWidth' | 'elevation' | 'weight' | 'lineStyle' | 'fillPattern';
|
|
1155
1192
|
type Scales = Partial<Record<ScaleKey, Scale>>;
|
|
1156
1193
|
type LayerDescriptor = {
|
|
1157
1194
|
type: LayerType;
|
|
@@ -2362,4 +2399,4 @@ declare function getColumnNameFromGeoColumn(geoColumn: string | null | undefined
|
|
|
2362
2399
|
*/
|
|
2363
2400
|
declare function getSpatialIndexFromGeoColumn(geoColumn: string): SpatialIndex | null;
|
|
2364
2401
|
|
|
2365
|
-
export { type APIErrorContext, type APIRequestType, AUDIT_TAGS, type AddFilterOptions, type AggregationFunction, type AggregationType, AggregationTypes, type AggregationsRequestOptions, type AggregationsResponse, ApiVersion, type Attribute, type AuthMode, type AuthOptions, _default as BASEMAP, type BaseRequestOptions, type Basemap, type BoundaryQuerySourceOptions, type BoundaryQuerySourceResponse, type BoundaryTableSourceOptions, type BoundaryTableSourceResponse, CARTO_SOURCES, CartoAPIError, type CategoryOrderBy, type CategoryRequestOptions, type CategoryResponse, type CategoryResponseEntry, type CategoryResponseRaw, CellSet, type ColumnsOption, type D3Scale, DEFAULT_API_BASE_URL, type ExtentRequestOptions, type ExtentResponse, FEATURE_GEOM_PROPERTY, type FeaturesRequestOptions, type FeaturesResponse, type FetchMapOptions, type FetchMapResult, type Filter, type FilterFunction, type FilterInterval, type FilterIntervalComplete, type FilterIntervalExtremum, type FilterLogicalOperator, type FilterOptions, FilterType, type Filters, type Format, type FormulaRequestOptions, type FormulaResponse, type GeometrySpatialFilter, type GetFilterOptions, type GoogleBasemap, type GroupByFeature, type GroupDateType, type H3QuerySourceOptions, type H3QuerySourceResponse, type H3TableSourceOptions, type H3TableSourceResponse, type H3TilesetSourceOptions, type H3TilesetSourceResponse, type HasFilterOptions, type HistogramRequestOptions, type HistogramResponse, type KeplerMapConfig, type Layer, type LayerDescriptor, type LayerType, type MapLibreBasemap, type MapType, type NamedQueryParameter, OPACITY_MAP, OTHERS_CATEGORY_NAME, type ParseMapResult, type PositionalQueryParameter, Provider, type ProviderType, type QuadbinQuerySourceOptions, type QuadbinQuerySourceResponse, type QuadbinTableSourceOptions, type QuadbinTableSourceResponse, type QuadbinTilesetSourceOptions, type QuadbinTilesetSourceResponse, type QueryOptions, type QueryParameterValue, type QueryParameters, type QueryResult, type QuerySourceOptions, type RangeRequestOptions, type RangeResponse, type Raster, RasterBandColorinterp, type RasterBandType, type RasterMetadata, type RasterMetadataBand, type RasterMetadataBandStats, type RasterSourceOptions, type RasterTile, type RemoveFilterOptions, SOURCE_DEFAULTS, type Scale, type ScaleKey, type ScaleType, type Scales, type ScatterPlotFeature, type ScatterRequestOptions, type ScatterResponse, type SchemaField, SchemaFieldType, type SortColumnType, type SortDirection, type SourceOptionalOptions, type SourceOptions, type SourceRequiredOptions, type SpatialDataType, type SpatialFilter, type SpatialFilterPolyfillMode, SpatialIndex, SpatialIndexColumn, type SpatialIndexFilter, type SpatialIndexTile, type StringSearchOptions, TEXT_LABEL_INDEX, TEXT_NUMBER_FORMATTER, TEXT_OUTLINE_OPACITY, type TableRequestOptions, type TableResponse, type TableSourceOptions, type Tile, type TileFeatureExtractOptions, type TileFeatures, type TileFeaturesSpatialIndexOptions, TileFormat, type TileResolution, type Tilejson, type TilejsonResult, type TilesetSourceOptions, type Tilestats, type TimeSeriesRequestOptions, type TimeSeriesResponse, type TrajectoryQuerySourceOptions, type TrajectoryQuerySourceResponse, type TrajectoryTableSourceOptions, type TrajectoryTableSourceResponse, type VectorLayer, type VectorQuerySourceOptions, type VectorQuerySourceResponse, type VectorTableSourceOptions, type VectorTableSourceResponse, type VectorTilesetSourceOptions, type VectorTilesetSourceResponse, type ViewState, type Viewport, type WidgetFeatureGeometryType, WidgetQuerySource, type WidgetQuerySourceResult, WidgetRasterSource, type WidgetRasterSourceProps, type WidgetRasterSourceResult, WidgetRemoteSource, type WidgetRemoteSourceProps, WidgetSource, type WidgetSourceProps, WidgetTableSource, type WidgetTableSourceResult, WidgetTilesetSource, type WidgetTilesetSourceProps, type WidgetTilesetSourceResult, type _DataFilterExtensionProps, ErrorCode as _ErrorCode, type VecExprResult as _VecExprResult, applyLayerGroupFilters as _applyLayerGroupFilters, _buildFeatureFilter, createVecExprEvaluator as _createVecExprEvaluator, domainFromValues as _domainFromValues, evaluateVecExpr as _evaluateVecExpr, fillInMapDatasets as _fillInMapDatasets, fillInTileStats as _fillInTileStats, _getHexagonResolution, getLog10ScaleSteps as _getLog10ScaleSteps, getPointsAggregationLevel as _getPointsAggregationLevel, getRasterTileLayerStyleProps as _getRasterTileLayerStyleProps, validateVecExprSyntax as _validateVecExprSyntax, addFilter, aggregate, aggregationFunctions, applyFilters, applySorting, boundaryQuerySource, boundaryTableSource, buildAuthHeaders, buildBinaryFeatureFilter, buildPublicMapUrl, buildStatsUrl, calculateClusterRadius, calculateClusterTextFontSize, calculateLayerScale, clearDefaultRequestCache, clearFilters, compileCustomAggregation, configureSource, createColorScale, createPolygonSpatialFilter, createViewportSpatialFilter, fetchBasemapProps, fetchMap, filterFunctions, geojsonFeatures, getApplicableFilters, getAuthCredentials, getClient, getColorAccessor, getColumnNameFromGeoColumn, getDataFilterExtensionProps, getDefaultAggregationExpColumnAliasForLayerType, getFilter, getIconUrlAccessor, getLayerDescriptor, getLayerProps, getMaxMarkerSize, getSizeAccessor, getSorter, getSpatialIndexFromGeoColumn, getTextAccessor, groupValuesByColumn, groupValuesByDateColumn, h3QuerySource, h3TableSource, h3TilesetSource, hasFilter, histogram, isSpatialIndexFilter, makeIntervalComplete, negateAccessor, opacityToAlpha, parseMap, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, query, rasterSource, removeFilter, requestWithParameters, rewriteUrlForSessionMode, scaleAggregationResLevel, scatterPlot, setClient, tileFeatures, tileFeaturesGeometries, tileFeaturesSpatialIndex, trajectoryQuerySource, trajectoryTableSource, transformToTileCoords, vectorQuerySource, vectorTableSource, vectorTilesetSource };
|
|
2402
|
+
export { type APIErrorContext, type APIRequestType, AUDIT_TAGS, type AddFilterOptions, type AggregationFunction, type AggregationType, AggregationTypes, type AggregationsRequestOptions, type AggregationsResponse, ApiVersion, type Attribute, type AuthMode, type AuthOptions, _default as BASEMAP, type BaseRequestOptions, type Basemap, type BoundaryQuerySourceOptions, type BoundaryQuerySourceResponse, type BoundaryTableSourceOptions, type BoundaryTableSourceResponse, CARTO_SOURCES, CartoAPIError, type CategoryOrderBy, type CategoryRequestOptions, type CategoryResponse, type CategoryResponseEntry, type CategoryResponseRaw, CellSet, type ColumnsOption, type D3Scale, DEFAULT_API_BASE_URL, type ExtentRequestOptions, type ExtentResponse, FEATURE_GEOM_PROPERTY, type FeaturesRequestOptions, type FeaturesResponse, type FetchMapOptions, type FetchMapResult, type Filter, type FilterFunction, type FilterInterval, type FilterIntervalComplete, type FilterIntervalExtremum, type FilterLogicalOperator, type FilterOptions, FilterType, type Filters, type Format, type FormulaRequestOptions, type FormulaResponse, type GeometrySpatialFilter, type GetFilterOptions, type GoogleBasemap, type GroupByFeature, type GroupDateType, type H3QuerySourceOptions, type H3QuerySourceResponse, type H3TableSourceOptions, type H3TableSourceResponse, type H3TilesetSourceOptions, type H3TilesetSourceResponse, type HasFilterOptions, type HistogramRequestOptions, type HistogramResponse, type KeplerMapConfig, type Layer, type LayerDescriptor, type LayerType, type MapLibreBasemap, type MapType, type NamedQueryParameter, OPACITY_MAP, OTHERS_CATEGORY_NAME, type ParseMapResult, type PositionalQueryParameter, Provider, type ProviderType, type QuadbinQuerySourceOptions, type QuadbinQuerySourceResponse, type QuadbinTableSourceOptions, type QuadbinTableSourceResponse, type QuadbinTilesetSourceOptions, type QuadbinTilesetSourceResponse, type QueryOptions, type QueryParameterValue, type QueryParameters, type QueryResult, type QuerySourceOptions, type RangeRequestOptions, type RangeResponse, type Raster, RasterBandColorinterp, type RasterBandType, type RasterMetadata, type RasterMetadataBand, type RasterMetadataBandStats, type RasterSourceOptions, type RasterTile, type RemoveFilterOptions, SOURCE_DEFAULTS, type Scale, type ScaleKey, type ScaleType, type Scales, type ScatterPlotFeature, type ScatterRequestOptions, type ScatterResponse, type SchemaField, SchemaFieldType, type SortColumnType, type SortDirection, type SourceOptionalOptions, type SourceOptions, type SourceRequiredOptions, type SpatialDataType, type SpatialFilter, type SpatialFilterPolyfillMode, SpatialIndex, SpatialIndexColumn, type SpatialIndexFilter, type SpatialIndexTile, type StringSearchOptions, TEXT_LABEL_INDEX, TEXT_NUMBER_FORMATTER, TEXT_OUTLINE_OPACITY, type TableRequestOptions, type TableResponse, type TableSourceOptions, type Tile, type TileFeatureExtractOptions, type TileFeatures, type TileFeaturesSpatialIndexOptions, TileFormat, type TileResolution, type Tilejson, type TilejsonResult, type TilesetSourceOptions, type Tilestats, type TimeSeriesRequestOptions, type TimeSeriesResponse, type TrajectoryQuerySourceOptions, type TrajectoryQuerySourceResponse, type TrajectoryTableSourceOptions, type TrajectoryTableSourceResponse, type VectorLayer, type VectorQuerySourceOptions, type VectorQuerySourceResponse, type VectorTableSourceOptions, type VectorTableSourceResponse, type VectorTilesetSourceOptions, type VectorTilesetSourceResponse, type ViewState, type Viewport, type WidgetFeatureGeometryType, WidgetQuerySource, type WidgetQuerySourceResult, WidgetRasterSource, type WidgetRasterSourceProps, type WidgetRasterSourceResult, WidgetRemoteSource, type WidgetRemoteSourceProps, WidgetSource, type WidgetSourceProps, WidgetTableSource, type WidgetTableSourceResult, WidgetTilesetSource, type WidgetTilesetSourceProps, type WidgetTilesetSourceResult, type _DataFilterExtensionProps, ErrorCode as _ErrorCode, type VecExprResult as _VecExprResult, applyLayerGroupFilters as _applyLayerGroupFilters, _buildFeatureFilter, createVecExprEvaluator as _createVecExprEvaluator, domainFromValues as _domainFromValues, evaluateVecExpr as _evaluateVecExpr, fillInMapDatasets as _fillInMapDatasets, fillInTileStats as _fillInTileStats, _getHexagonResolution, getLog10ScaleSteps as _getLog10ScaleSteps, getPointsAggregationLevel as _getPointsAggregationLevel, getRasterTileLayerStyleProps as _getRasterTileLayerStyleProps, validateVecExprSyntax as _validateVecExprSyntax, addFilter, aggregate, aggregationFunctions, applyFilters, applySorting, boundaryQuerySource, boundaryTableSource, buildAuthHeaders, buildBinaryFeatureFilter, buildPublicMapUrl, buildStatsUrl, calculateClusterRadius, calculateClusterTextFontSize, calculateLayerScale, clearDefaultRequestCache, clearFilters, compileCustomAggregation, configureSource, createColorScale, createPolygonSpatialFilter, createViewportSpatialFilter, fetchBasemapProps, fetchMap, filterFunctions, geojsonFeatures, getApplicableFilters, getAuthCredentials, getClient, getColorAccessor, getColumnNameFromGeoColumn, getDataFilterExtensionProps, getDefaultAggregationExpColumnAliasForLayerType, getFillPatternAccessor, getFilter, getIconUrlAccessor, getLayerDescriptor, getLayerProps, getLineStyleAccessor, getMaxMarkerSize, getSizeAccessor, getSorter, getSpatialIndexFromGeoColumn, getTextAccessor, groupValuesByColumn, groupValuesByDateColumn, h3QuerySource, h3TableSource, h3TilesetSource, hasFilter, histogram, isSpatialIndexFilter, makeIntervalComplete, negateAccessor, opacityToAlpha, parseMap, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, query, rasterSource, removeFilter, requestWithParameters, rewriteUrlForSessionMode, scaleAggregationResLevel, scatterPlot, setClient, tileFeatures, tileFeaturesGeometries, tileFeaturesSpatialIndex, trajectoryQuerySource, trajectoryTableSource, transformToTileCoords, vectorQuerySource, vectorTableSource, vectorTilesetSource };
|
package/build/api-client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Polygon, MultiPolygon, Feature, BBox, FeatureCollection, Geometry } from 'geojson';
|
|
2
|
+
import { BinaryFeature, BinaryFeatureCollection } from '@loaders.gl/schema';
|
|
3
3
|
import jsep from 'jsep';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -863,6 +863,16 @@ declare function getIconUrlAccessor(field: VisualChannelField | null | undefined
|
|
|
863
863
|
maxIconSize: number;
|
|
864
864
|
useMaskedIcons?: boolean;
|
|
865
865
|
}, data: any): any;
|
|
866
|
+
declare function getLineStyleAccessor(field: VisualChannelField, range: LineStyleRange, data: any): {
|
|
867
|
+
accessor: any;
|
|
868
|
+
domain: string[];
|
|
869
|
+
range: [number, number][];
|
|
870
|
+
};
|
|
871
|
+
declare function getFillPatternAccessor(field: VisualChannelField, range: FillPatternRange, density: 'small' | 'medium' | 'large' | undefined, data: any): {
|
|
872
|
+
accessor: any;
|
|
873
|
+
domain: string[];
|
|
874
|
+
range: string[];
|
|
875
|
+
};
|
|
866
876
|
declare function getMaxMarkerSize(visConfig: VisConfig, visualChannels: VisualChannels): number;
|
|
867
877
|
type Accessor = number | ((d: any, i: any) => number);
|
|
868
878
|
declare function negateAccessor(accessor: Accessor): Accessor;
|
|
@@ -908,6 +918,10 @@ type VisualChannels = {
|
|
|
908
918
|
sizeScale?: ScaleType;
|
|
909
919
|
strokeColorField?: VisualChannelField;
|
|
910
920
|
strokeColorScale?: ScaleType;
|
|
921
|
+
lineStyleField?: VisualChannelField;
|
|
922
|
+
lineStyleScale?: ScaleType;
|
|
923
|
+
fillPatternField?: VisualChannelField;
|
|
924
|
+
fillPatternScale?: ScaleType;
|
|
911
925
|
heightField?: VisualChannelField;
|
|
912
926
|
heightScale?: ScaleType;
|
|
913
927
|
weightField?: VisualChannelField;
|
|
@@ -928,6 +942,20 @@ type CustomMarkersRange = {
|
|
|
928
942
|
}[];
|
|
929
943
|
othersMarker?: string;
|
|
930
944
|
};
|
|
945
|
+
type LineStyleRange = {
|
|
946
|
+
dashArrayMap: {
|
|
947
|
+
value: string;
|
|
948
|
+
dashArray: [number, number];
|
|
949
|
+
}[];
|
|
950
|
+
othersDashArray?: [number, number];
|
|
951
|
+
};
|
|
952
|
+
type FillPatternRange = {
|
|
953
|
+
patternMap: {
|
|
954
|
+
value: string;
|
|
955
|
+
pattern: string;
|
|
956
|
+
}[];
|
|
957
|
+
othersPattern?: string;
|
|
958
|
+
};
|
|
931
959
|
type ColorBand = 'red' | 'green' | 'blue' | 'alpha';
|
|
932
960
|
type RasterLayerConfigColorBand = {
|
|
933
961
|
band: ColorBand;
|
|
@@ -963,6 +991,15 @@ type VisConfig = {
|
|
|
963
991
|
strokeColorAggregationDomain?: [number, number];
|
|
964
992
|
strokeOpacity?: number;
|
|
965
993
|
strokeColorRange?: ColorRange;
|
|
994
|
+
stroked?: boolean;
|
|
995
|
+
lineStyle?: 'solid' | 'dashed' | 'dotted';
|
|
996
|
+
dashArray?: [number, number];
|
|
997
|
+
lineStyleRange?: LineStyleRange | null;
|
|
998
|
+
fillPatternEnabled?: boolean;
|
|
999
|
+
fillPattern?: string;
|
|
1000
|
+
fillPatternDensity?: 'small' | 'medium' | 'large';
|
|
1001
|
+
fillPatternSize?: number;
|
|
1002
|
+
fillPatternRange?: FillPatternRange | null;
|
|
966
1003
|
heightRange?: number[];
|
|
967
1004
|
heightAggregation?: string;
|
|
968
1005
|
heightAggregationExp?: string;
|
|
@@ -1149,9 +1186,9 @@ type Scale = {
|
|
|
1149
1186
|
domain?: string[] | number[];
|
|
1150
1187
|
/** Domain of the user to construct d3 scale */
|
|
1151
1188
|
scaleDomain?: string[] | number[];
|
|
1152
|
-
range?: string[] | number[];
|
|
1189
|
+
range?: string[] | number[] | number[][];
|
|
1153
1190
|
};
|
|
1154
|
-
type ScaleKey = 'fillColor' | 'pointRadius' | 'lineColor' | 'lineWidth' | 'elevation' | 'weight';
|
|
1191
|
+
type ScaleKey = 'fillColor' | 'pointRadius' | 'lineColor' | 'lineWidth' | 'elevation' | 'weight' | 'lineStyle' | 'fillPattern';
|
|
1155
1192
|
type Scales = Partial<Record<ScaleKey, Scale>>;
|
|
1156
1193
|
type LayerDescriptor = {
|
|
1157
1194
|
type: LayerType;
|
|
@@ -2362,4 +2399,4 @@ declare function getColumnNameFromGeoColumn(geoColumn: string | null | undefined
|
|
|
2362
2399
|
*/
|
|
2363
2400
|
declare function getSpatialIndexFromGeoColumn(geoColumn: string): SpatialIndex | null;
|
|
2364
2401
|
|
|
2365
|
-
export { type APIErrorContext, type APIRequestType, AUDIT_TAGS, type AddFilterOptions, type AggregationFunction, type AggregationType, AggregationTypes, type AggregationsRequestOptions, type AggregationsResponse, ApiVersion, type Attribute, type AuthMode, type AuthOptions, _default as BASEMAP, type BaseRequestOptions, type Basemap, type BoundaryQuerySourceOptions, type BoundaryQuerySourceResponse, type BoundaryTableSourceOptions, type BoundaryTableSourceResponse, CARTO_SOURCES, CartoAPIError, type CategoryOrderBy, type CategoryRequestOptions, type CategoryResponse, type CategoryResponseEntry, type CategoryResponseRaw, CellSet, type ColumnsOption, type D3Scale, DEFAULT_API_BASE_URL, type ExtentRequestOptions, type ExtentResponse, FEATURE_GEOM_PROPERTY, type FeaturesRequestOptions, type FeaturesResponse, type FetchMapOptions, type FetchMapResult, type Filter, type FilterFunction, type FilterInterval, type FilterIntervalComplete, type FilterIntervalExtremum, type FilterLogicalOperator, type FilterOptions, FilterType, type Filters, type Format, type FormulaRequestOptions, type FormulaResponse, type GeometrySpatialFilter, type GetFilterOptions, type GoogleBasemap, type GroupByFeature, type GroupDateType, type H3QuerySourceOptions, type H3QuerySourceResponse, type H3TableSourceOptions, type H3TableSourceResponse, type H3TilesetSourceOptions, type H3TilesetSourceResponse, type HasFilterOptions, type HistogramRequestOptions, type HistogramResponse, type KeplerMapConfig, type Layer, type LayerDescriptor, type LayerType, type MapLibreBasemap, type MapType, type NamedQueryParameter, OPACITY_MAP, OTHERS_CATEGORY_NAME, type ParseMapResult, type PositionalQueryParameter, Provider, type ProviderType, type QuadbinQuerySourceOptions, type QuadbinQuerySourceResponse, type QuadbinTableSourceOptions, type QuadbinTableSourceResponse, type QuadbinTilesetSourceOptions, type QuadbinTilesetSourceResponse, type QueryOptions, type QueryParameterValue, type QueryParameters, type QueryResult, type QuerySourceOptions, type RangeRequestOptions, type RangeResponse, type Raster, RasterBandColorinterp, type RasterBandType, type RasterMetadata, type RasterMetadataBand, type RasterMetadataBandStats, type RasterSourceOptions, type RasterTile, type RemoveFilterOptions, SOURCE_DEFAULTS, type Scale, type ScaleKey, type ScaleType, type Scales, type ScatterPlotFeature, type ScatterRequestOptions, type ScatterResponse, type SchemaField, SchemaFieldType, type SortColumnType, type SortDirection, type SourceOptionalOptions, type SourceOptions, type SourceRequiredOptions, type SpatialDataType, type SpatialFilter, type SpatialFilterPolyfillMode, SpatialIndex, SpatialIndexColumn, type SpatialIndexFilter, type SpatialIndexTile, type StringSearchOptions, TEXT_LABEL_INDEX, TEXT_NUMBER_FORMATTER, TEXT_OUTLINE_OPACITY, type TableRequestOptions, type TableResponse, type TableSourceOptions, type Tile, type TileFeatureExtractOptions, type TileFeatures, type TileFeaturesSpatialIndexOptions, TileFormat, type TileResolution, type Tilejson, type TilejsonResult, type TilesetSourceOptions, type Tilestats, type TimeSeriesRequestOptions, type TimeSeriesResponse, type TrajectoryQuerySourceOptions, type TrajectoryQuerySourceResponse, type TrajectoryTableSourceOptions, type TrajectoryTableSourceResponse, type VectorLayer, type VectorQuerySourceOptions, type VectorQuerySourceResponse, type VectorTableSourceOptions, type VectorTableSourceResponse, type VectorTilesetSourceOptions, type VectorTilesetSourceResponse, type ViewState, type Viewport, type WidgetFeatureGeometryType, WidgetQuerySource, type WidgetQuerySourceResult, WidgetRasterSource, type WidgetRasterSourceProps, type WidgetRasterSourceResult, WidgetRemoteSource, type WidgetRemoteSourceProps, WidgetSource, type WidgetSourceProps, WidgetTableSource, type WidgetTableSourceResult, WidgetTilesetSource, type WidgetTilesetSourceProps, type WidgetTilesetSourceResult, type _DataFilterExtensionProps, ErrorCode as _ErrorCode, type VecExprResult as _VecExprResult, applyLayerGroupFilters as _applyLayerGroupFilters, _buildFeatureFilter, createVecExprEvaluator as _createVecExprEvaluator, domainFromValues as _domainFromValues, evaluateVecExpr as _evaluateVecExpr, fillInMapDatasets as _fillInMapDatasets, fillInTileStats as _fillInTileStats, _getHexagonResolution, getLog10ScaleSteps as _getLog10ScaleSteps, getPointsAggregationLevel as _getPointsAggregationLevel, getRasterTileLayerStyleProps as _getRasterTileLayerStyleProps, validateVecExprSyntax as _validateVecExprSyntax, addFilter, aggregate, aggregationFunctions, applyFilters, applySorting, boundaryQuerySource, boundaryTableSource, buildAuthHeaders, buildBinaryFeatureFilter, buildPublicMapUrl, buildStatsUrl, calculateClusterRadius, calculateClusterTextFontSize, calculateLayerScale, clearDefaultRequestCache, clearFilters, compileCustomAggregation, configureSource, createColorScale, createPolygonSpatialFilter, createViewportSpatialFilter, fetchBasemapProps, fetchMap, filterFunctions, geojsonFeatures, getApplicableFilters, getAuthCredentials, getClient, getColorAccessor, getColumnNameFromGeoColumn, getDataFilterExtensionProps, getDefaultAggregationExpColumnAliasForLayerType, getFilter, getIconUrlAccessor, getLayerDescriptor, getLayerProps, getMaxMarkerSize, getSizeAccessor, getSorter, getSpatialIndexFromGeoColumn, getTextAccessor, groupValuesByColumn, groupValuesByDateColumn, h3QuerySource, h3TableSource, h3TilesetSource, hasFilter, histogram, isSpatialIndexFilter, makeIntervalComplete, negateAccessor, opacityToAlpha, parseMap, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, query, rasterSource, removeFilter, requestWithParameters, rewriteUrlForSessionMode, scaleAggregationResLevel, scatterPlot, setClient, tileFeatures, tileFeaturesGeometries, tileFeaturesSpatialIndex, trajectoryQuerySource, trajectoryTableSource, transformToTileCoords, vectorQuerySource, vectorTableSource, vectorTilesetSource };
|
|
2402
|
+
export { type APIErrorContext, type APIRequestType, AUDIT_TAGS, type AddFilterOptions, type AggregationFunction, type AggregationType, AggregationTypes, type AggregationsRequestOptions, type AggregationsResponse, ApiVersion, type Attribute, type AuthMode, type AuthOptions, _default as BASEMAP, type BaseRequestOptions, type Basemap, type BoundaryQuerySourceOptions, type BoundaryQuerySourceResponse, type BoundaryTableSourceOptions, type BoundaryTableSourceResponse, CARTO_SOURCES, CartoAPIError, type CategoryOrderBy, type CategoryRequestOptions, type CategoryResponse, type CategoryResponseEntry, type CategoryResponseRaw, CellSet, type ColumnsOption, type D3Scale, DEFAULT_API_BASE_URL, type ExtentRequestOptions, type ExtentResponse, FEATURE_GEOM_PROPERTY, type FeaturesRequestOptions, type FeaturesResponse, type FetchMapOptions, type FetchMapResult, type Filter, type FilterFunction, type FilterInterval, type FilterIntervalComplete, type FilterIntervalExtremum, type FilterLogicalOperator, type FilterOptions, FilterType, type Filters, type Format, type FormulaRequestOptions, type FormulaResponse, type GeometrySpatialFilter, type GetFilterOptions, type GoogleBasemap, type GroupByFeature, type GroupDateType, type H3QuerySourceOptions, type H3QuerySourceResponse, type H3TableSourceOptions, type H3TableSourceResponse, type H3TilesetSourceOptions, type H3TilesetSourceResponse, type HasFilterOptions, type HistogramRequestOptions, type HistogramResponse, type KeplerMapConfig, type Layer, type LayerDescriptor, type LayerType, type MapLibreBasemap, type MapType, type NamedQueryParameter, OPACITY_MAP, OTHERS_CATEGORY_NAME, type ParseMapResult, type PositionalQueryParameter, Provider, type ProviderType, type QuadbinQuerySourceOptions, type QuadbinQuerySourceResponse, type QuadbinTableSourceOptions, type QuadbinTableSourceResponse, type QuadbinTilesetSourceOptions, type QuadbinTilesetSourceResponse, type QueryOptions, type QueryParameterValue, type QueryParameters, type QueryResult, type QuerySourceOptions, type RangeRequestOptions, type RangeResponse, type Raster, RasterBandColorinterp, type RasterBandType, type RasterMetadata, type RasterMetadataBand, type RasterMetadataBandStats, type RasterSourceOptions, type RasterTile, type RemoveFilterOptions, SOURCE_DEFAULTS, type Scale, type ScaleKey, type ScaleType, type Scales, type ScatterPlotFeature, type ScatterRequestOptions, type ScatterResponse, type SchemaField, SchemaFieldType, type SortColumnType, type SortDirection, type SourceOptionalOptions, type SourceOptions, type SourceRequiredOptions, type SpatialDataType, type SpatialFilter, type SpatialFilterPolyfillMode, SpatialIndex, SpatialIndexColumn, type SpatialIndexFilter, type SpatialIndexTile, type StringSearchOptions, TEXT_LABEL_INDEX, TEXT_NUMBER_FORMATTER, TEXT_OUTLINE_OPACITY, type TableRequestOptions, type TableResponse, type TableSourceOptions, type Tile, type TileFeatureExtractOptions, type TileFeatures, type TileFeaturesSpatialIndexOptions, TileFormat, type TileResolution, type Tilejson, type TilejsonResult, type TilesetSourceOptions, type Tilestats, type TimeSeriesRequestOptions, type TimeSeriesResponse, type TrajectoryQuerySourceOptions, type TrajectoryQuerySourceResponse, type TrajectoryTableSourceOptions, type TrajectoryTableSourceResponse, type VectorLayer, type VectorQuerySourceOptions, type VectorQuerySourceResponse, type VectorTableSourceOptions, type VectorTableSourceResponse, type VectorTilesetSourceOptions, type VectorTilesetSourceResponse, type ViewState, type Viewport, type WidgetFeatureGeometryType, WidgetQuerySource, type WidgetQuerySourceResult, WidgetRasterSource, type WidgetRasterSourceProps, type WidgetRasterSourceResult, WidgetRemoteSource, type WidgetRemoteSourceProps, WidgetSource, type WidgetSourceProps, WidgetTableSource, type WidgetTableSourceResult, WidgetTilesetSource, type WidgetTilesetSourceProps, type WidgetTilesetSourceResult, type _DataFilterExtensionProps, ErrorCode as _ErrorCode, type VecExprResult as _VecExprResult, applyLayerGroupFilters as _applyLayerGroupFilters, _buildFeatureFilter, createVecExprEvaluator as _createVecExprEvaluator, domainFromValues as _domainFromValues, evaluateVecExpr as _evaluateVecExpr, fillInMapDatasets as _fillInMapDatasets, fillInTileStats as _fillInTileStats, _getHexagonResolution, getLog10ScaleSteps as _getLog10ScaleSteps, getPointsAggregationLevel as _getPointsAggregationLevel, getRasterTileLayerStyleProps as _getRasterTileLayerStyleProps, validateVecExprSyntax as _validateVecExprSyntax, addFilter, aggregate, aggregationFunctions, applyFilters, applySorting, boundaryQuerySource, boundaryTableSource, buildAuthHeaders, buildBinaryFeatureFilter, buildPublicMapUrl, buildStatsUrl, calculateClusterRadius, calculateClusterTextFontSize, calculateLayerScale, clearDefaultRequestCache, clearFilters, compileCustomAggregation, configureSource, createColorScale, createPolygonSpatialFilter, createViewportSpatialFilter, fetchBasemapProps, fetchMap, filterFunctions, geojsonFeatures, getApplicableFilters, getAuthCredentials, getClient, getColorAccessor, getColumnNameFromGeoColumn, getDataFilterExtensionProps, getDefaultAggregationExpColumnAliasForLayerType, getFillPatternAccessor, getFilter, getIconUrlAccessor, getLayerDescriptor, getLayerProps, getLineStyleAccessor, getMaxMarkerSize, getSizeAccessor, getSorter, getSpatialIndexFromGeoColumn, getTextAccessor, groupValuesByColumn, groupValuesByDateColumn, h3QuerySource, h3TableSource, h3TilesetSource, hasFilter, histogram, isSpatialIndexFilter, makeIntervalComplete, negateAccessor, opacityToAlpha, parseMap, quadbinQuerySource, quadbinTableSource, quadbinTilesetSource, query, rasterSource, removeFilter, requestWithParameters, rewriteUrlForSessionMode, scaleAggregationResLevel, scatterPlot, setClient, tileFeatures, tileFeaturesGeometries, tileFeaturesSpatialIndex, trajectoryQuerySource, trajectoryTableSource, transformToTileCoords, vectorQuerySource, vectorTableSource, vectorTilesetSource };
|
package/build/api-client.js
CHANGED
|
@@ -9796,6 +9796,34 @@ function getIconUrlAccessor(field, range, {
|
|
|
9796
9796
|
};
|
|
9797
9797
|
return normalizeAccessor(accessor, data);
|
|
9798
9798
|
}
|
|
9799
|
+
function getLineStyleAccessor(field, range, data) {
|
|
9800
|
+
const fallback = range.othersDashArray ?? [0, 0];
|
|
9801
|
+
const mapping = {};
|
|
9802
|
+
for (const { value, dashArray } of range.dashArrayMap) {
|
|
9803
|
+
mapping[value] = dashArray;
|
|
9804
|
+
}
|
|
9805
|
+
const accessor = (properties) => mapping[properties[field.name]] ?? fallback;
|
|
9806
|
+
return {
|
|
9807
|
+
accessor: normalizeAccessor(accessor, data),
|
|
9808
|
+
domain: range.dashArrayMap.map(({ value }) => value),
|
|
9809
|
+
range: range.dashArrayMap.map(({ dashArray }) => dashArray)
|
|
9810
|
+
};
|
|
9811
|
+
}
|
|
9812
|
+
function getFillPatternAccessor(field, range, density, data) {
|
|
9813
|
+
const d = density ?? "medium";
|
|
9814
|
+
const toKey = (pattern) => pattern === "solid" || pattern === "none" ? pattern : `${pattern}-${d}`;
|
|
9815
|
+
const fallback = toKey(range.othersPattern ?? "none");
|
|
9816
|
+
const mapping = {};
|
|
9817
|
+
for (const { value, pattern } of range.patternMap) {
|
|
9818
|
+
mapping[value] = toKey(pattern);
|
|
9819
|
+
}
|
|
9820
|
+
const accessor = (properties) => mapping[properties[field.name]] ?? fallback;
|
|
9821
|
+
return {
|
|
9822
|
+
accessor: normalizeAccessor(accessor, data),
|
|
9823
|
+
domain: range.patternMap.map(({ value }) => value),
|
|
9824
|
+
range: range.patternMap.map(({ pattern }) => pattern)
|
|
9825
|
+
};
|
|
9826
|
+
}
|
|
9799
9827
|
function getMaxMarkerSize(visConfig, visualChannels) {
|
|
9800
9828
|
const { radiusRange, radius, sizeMaxPixels } = visConfig;
|
|
9801
9829
|
const { radiusField, sizeField } = visualChannels;
|
|
@@ -10282,6 +10310,194 @@ function hexToRGB2(hexColor) {
|
|
|
10282
10310
|
return [r, g, b];
|
|
10283
10311
|
}
|
|
10284
10312
|
|
|
10313
|
+
// src/fetch-map/pattern-atlas-baked.ts
|
|
10314
|
+
var BAKED_ATLAS_URL = "data:image/png;base64,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";
|
|
10315
|
+
var PATTERN_ATLAS_MAPPING = {
|
|
10316
|
+
"hlines-large": { x: 0, y: 0, width: 64, height: 64, mask: true },
|
|
10317
|
+
"hlines-medium": { x: 64, y: 0, width: 64, height: 64, mask: true },
|
|
10318
|
+
"hlines-small": { x: 128, y: 0, width: 64, height: 64, mask: true },
|
|
10319
|
+
"vlines-large": { x: 0, y: 64, width: 64, height: 64, mask: true },
|
|
10320
|
+
"vlines-medium": { x: 64, y: 64, width: 64, height: 64, mask: true },
|
|
10321
|
+
"vlines-small": { x: 128, y: 64, width: 64, height: 64, mask: true },
|
|
10322
|
+
"diag-left-large": { x: 0, y: 128, width: 64, height: 64, mask: true },
|
|
10323
|
+
"diag-left-medium": { x: 64, y: 128, width: 64, height: 64, mask: true },
|
|
10324
|
+
"diag-left-small": { x: 128, y: 128, width: 64, height: 64, mask: true },
|
|
10325
|
+
"diag-right-large": { x: 0, y: 192, width: 64, height: 64, mask: true },
|
|
10326
|
+
"diag-right-medium": { x: 64, y: 192, width: 64, height: 64, mask: true },
|
|
10327
|
+
"diag-right-small": { x: 128, y: 192, width: 64, height: 64, mask: true },
|
|
10328
|
+
"cross-hatch-large": { x: 0, y: 256, width: 64, height: 64, mask: true },
|
|
10329
|
+
"cross-hatch-medium": { x: 64, y: 256, width: 64, height: 64, mask: true },
|
|
10330
|
+
"cross-hatch-small": { x: 128, y: 256, width: 64, height: 64, mask: true },
|
|
10331
|
+
"dots-large": { x: 0, y: 320, width: 64, height: 64, mask: true },
|
|
10332
|
+
"dots-medium": { x: 64, y: 320, width: 64, height: 64, mask: true },
|
|
10333
|
+
"dots-small": { x: 128, y: 320, width: 64, height: 64, mask: true },
|
|
10334
|
+
"checker-large": { x: 0, y: 384, width: 64, height: 64, mask: true },
|
|
10335
|
+
"checker-medium": { x: 64, y: 384, width: 64, height: 64, mask: true },
|
|
10336
|
+
"checker-small": { x: 128, y: 384, width: 64, height: 64, mask: true },
|
|
10337
|
+
solid: { x: 64, y: 448, width: 64, height: 64, mask: true },
|
|
10338
|
+
none: { x: 0, y: 448, width: 64, height: 64, mask: true }
|
|
10339
|
+
};
|
|
10340
|
+
var CELL = 64;
|
|
10341
|
+
var ATLAS_W = CELL * 3;
|
|
10342
|
+
var ATLAS_H = CELL * 8;
|
|
10343
|
+
|
|
10344
|
+
// src/fetch-map/patterns/hlines-large.png
|
|
10345
|
+
var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
|
|
10346
|
+
|
|
10347
|
+
// src/fetch-map/patterns/hlines-medium.png
|
|
10348
|
+
var hlines_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABOSURBVHic7daxAQAgDMOwwv8/wxkeKl3gLTkz8wYAVjrbZ/DWAQDQ8QPqAADo+AF1AAB0/IA6AAA6fkAdAAAdP6AOAICOH1AHAEBn/Q/4F6kJD4qx2asAAAAASUVORK5CYII=";
|
|
10349
|
+
|
|
10350
|
+
// src/fetch-map/patterns/hlines-small.png
|
|
10351
|
+
var hlines_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABrSURBVHic7dSxAQAgDMOwwv8/wxkeKl3gJTkz8wbWOtsncOsAaPmAOgBaPqAOgJYPqAOg5QPqAGj5gDoAWj6gDoCWD6gDoOUD6gBo+YA6AFo+oA6Alg+oA6DlA+oAaPmAOgBaPqAOgNb6D/gRbhEfmYiEGgAAAABJRU5ErkJggg==";
|
|
10352
|
+
|
|
10353
|
+
// src/fetch-map/patterns/vlines-large.png
|
|
10354
|
+
var vlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACkSURBVHic7dAxCsAwEMRAk///2W5Sp7CLMUGCK28RGuOb+d4u1/8/B+O/oABaQFMALaApgBbQFEALaAqgBTQF0AKaAmgBTQG0gKYAWkBTAC2gKYAW0BRAC2gKoAU0BdACmgJoAU0BtICmAFpAUwAtoCmAFtAUQAtoCqAFNAXQApoCaAFNAbSApgBaQFMALaApgBbQFEALaAqgBTQF0AKaAmgBzQIgxAh3o/Zl8AAAAABJRU5ErkJggg==";
|
|
10355
|
+
|
|
10356
|
+
// src/fetch-map/patterns/vlines-medium.png
|
|
10357
|
+
var vlines_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACfSURBVHic7dCxDYBQAITQi/vv/J1A25cotDSEbTt75nzdXy/yFzRAB2gaoAM0DdABmgboAE0DdICmATpA0wAdoGmADtA0QAdoGqADNA3QAZoG6ABNA3SApgE6QNMAHaBpgA7QNEAHaBqgAzQN0AGaBugATQN0gKYBOkDTAB2gaYAO0DRAB2gaoAM0DdABmgboAE0DdICmATpA0wAdoLkBMJgQb6A8qDAAAAAASUVORK5CYII=";
|
|
10358
|
+
|
|
10359
|
+
// src/fetch-map/patterns/vlines-small.png
|
|
10360
|
+
var vlines_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACcSURBVHic7dCxDcAwAMMwo///nIw9gUPEzZuhbTv7ndf2t8cVQB/QCqAPaAXQB7QC6ANaAfQBrQD6gFYAfUArgD6gFUAf0AqgD2gF0Ae0AugDWgH0Aa0A+oBWAH1AK4A+oBVAH9AKoA9oBdAHtALoA1oB9AGtAPqAVgB9QCuAPqAVQB/QCqAPaAXQB7QC6ANaAfQBrQD6gFYAfUC7UEAgXxU1dpkAAAAASUVORK5CYII=";
|
|
10361
|
+
|
|
10362
|
+
// src/fetch-map/patterns/diag-left-large.png
|
|
10363
|
+
var diag_left_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACtSURBVHic7dkxCsMwEETRuf/lfKSkmBCiflUseR/cDuYhN3KSvD7PVM+FzfxsPsOb3+F/RTiGIUCAACEQzmEIECBACIRzGAIECBAC4RyGAGEpwvQd2zaE8eOwDeHKN7EJIYHQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgbEWYltiGcOU4bEJY9QfmBkICoUGA0CBAaBAgNAgQGgQIDQKEBgFCgwChrUWYfOF1CG/KcyXf7pwUyQAAAABJRU5ErkJggg==";
|
|
10364
|
+
|
|
10365
|
+
// src/fetch-map/patterns/diag-left-medium.png
|
|
10366
|
+
var diag_left_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAD+SURBVHic7dqxDYAwDADB7L9cRoIGaiQk81cQKZ3l+wG81lrH9Z/ePbcf5vaLnaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRn/hEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMRtU9EjPtEROgTEaVPRJQ+EVH7RETtExG1T0TUPhFR+0RE7RMR/33Afx8w7xMRpU9E1D4RUftERO0TEbVPRNQ+EVH7RETtExHjPhFR+SdUtUu99aAoTAAAAABJRU5ErkJggg==";
|
|
10367
|
+
|
|
10368
|
+
// src/fetch-map/patterns/diag-left-small.png
|
|
10369
|
+
var diag_left_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADqSURBVHic7dgxCsMwAARB/f9zflLS2JDC/U7gDG4EA4s63TnnfO7/+a6Xs/Nzdr2c/bMnIkpPRNSeiMg8ERF6IqL0RETpiYjaExG1JyIST0SEnogoPRFReiKi9kRE5omI0BMRpSciSk9E1J6IyDwREXoiYnvAXoG7hNwTEYknIkJPRJSeiCg9EVF7ImJ7wPaAxhMRpSciak9EZJ6ICD0RsT1gr8BdQu6JiMQTEaEnIkpPRJSeiKg9EbE9YHtA44mI0hMRtSciMk9EhJ6I2B6wV+AuIfdEROKJiNATEaUnIkpPRNSeiNgeUPgvaSqXeT0fItoAAAAASUVORK5CYII=";
|
|
10370
|
+
|
|
10371
|
+
// src/fetch-map/patterns/diag-right-large.png
|
|
10372
|
+
var diag_right_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAClSURBVHic7djBCQMgFAXB339zlmQuOaSAFSLOFvBwEC/OzOzpWt+9cnN+NteBzawb8dlZ4eHb4OH7TfgiePg2ePh+E74IHr4NHr7fhK9HT2z+O37N4/jafh3+yFOCjzfho+Dhw+Dh+034KHj4MHj4fhM+Ch4+DP5V/DyO3/M4/shTugmfXT48fBc8fBs8fDwIHwUP3wYPHw/CR8HDt8HH33hP4/cHynMl31YK/QUAAAAASUVORK5CYII=";
|
|
10373
|
+
|
|
10374
|
+
// src/fetch-map/patterns/diag-right-medium.png
|
|
10375
|
+
var diag_right_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADKSURBVHic7doxCsMwEAXRf//L6UhKkyJVVmkyRn8M6pYdHhg3VpLszM9+nzXMrY/Z0510H43T+HFWvHggTvfFiwfidF98Kz7l+J1y/Dh3O/5rX7x4IE73xYsH4nS/Gp9y/Eo5/mTf1fhxp3jxQJzuixcPxOm++FZ8yvE75fif3pAb8cffB/H/jtN98eKBON0XLx6IP6Bfjd8px49zt+P9Y/TION0XLx6I033xrfiU470fcLDvavy4U7x4IE73xYsH4nRffCs+5fj9AlS1S72cv9TCAAAAAElFTkSuQmCC";
|
|
10376
|
+
|
|
10377
|
+
// src/fetch-map/patterns/diag-right-small.png
|
|
10378
|
+
var diag_right_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAADbSURBVHic7dgxCsNAEMXQuf/lfCSnCdiFqx01AqXLwgP90jMzc8/zu/7/32/zers+3uxeHY95dXzjd14dT3h1POHV8ahXxze+8cdeHU94dTzh1fGYV8c3fufV8YRXxxNeHY95dXzjd14d3z0A8Op41KvjG9/47gGnXh1PeHV8n8SN33t1POHV8YRXx2NeHd/4nVfHdw8AvDoe9er4xje+e8CpV8cTXh3fJ3Hj914dT3h1POHV8ZhXxzd+59Xx3QMAr45HvTq+8Y3vHnDq1fGEV8f3Sdz4vVfHr/0PaSqXeV716iAAAAAASUVORK5CYII=";
|
|
10379
|
+
|
|
10380
|
+
// src/fetch-map/patterns/cross-hatch-large.png
|
|
10381
|
+
var cross_hatch_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAALoSURBVHic1ZpdUiwxCIUpV3D3/zJL0qXcHeiLsVokCT8fPRmq5kErnOGcTgMKIiKf3x/CHhc8ClMU5juMiQX8UEFSIliYVRH+cK6KcCX/7/t3hAgW4aoIU65ZESzywyoirIhmRdhyjIqwIj8sI4KHYFQENzfvQQ/5YRERIsS8Z8O3e+cQIT/MI0Lmau980vlt5pghP2wlQiW5zXzLFU4DVMgPs0QgypvGwPqRT+OTJT/s3cAkGhwrVsRI8sPIxuZqOHnd3lLAd2CWhdXvPBXwNUCqbdaxlUWYJbyqCFZgVRFmMaVF2GX7rAirgLIi7GIJi+AtdVERPIFERfDG4BYhWufxAAIi4A8g2+TgV9AhAv4KVjs8PAktRMCTMNHeWoERtViL0FGGEfIaGGtEJm0zYT9YVKAamAq0C/NxFYASQT8pIuAOzIfGIkTQGETAGoNom6c5ryLCzLciwsy3IsI24WdE2PlkRNj5ZERwV7uICN6zERG8ZyMihEu9h1j0tniIRW+LR4R0n7MimM0XK4LZfLESodzkWUSrFcMiWq0YlghUh/uLMNUzWLW9Wt+v8WHkrYDp8TTV3IjRNm/Jv0FffIp9qJ//E6Cv8gq07Ce8ShJs2U94lTLYsp/wKo1Qy35ChJj3bISY92zLfkLmau98Mld759Oyn1BJbjPfSnKb+bbsJxDlTWMQ5U1jtOwnkB0eXdtnmOR+AkZ+GEnewqT3E9Bg9ZMihO3eTzh3Pn/TfoLIifP5m/cTRE6azz9pP0HkhPn8k/cTRJ45nz9kP0HkGfP5w/YTRO6czx+6nyBy03z+5P0EkRvm8wT5GSbW4dLkxfgfHmV4rFpVAthqb4/8Y0wDdc3nCRE0RlmEGUDXfL4iwsw3LcLOsWs+nxFh5xMWwevQNZ+PiOA96xYhqlbXfN5DLHpbttyy70vXfH5FMJsvphyrGbNrPm8RrVaMP1ypmtk1n78SpnqGX5zJrik8n3ca3TD9YH4B52HxPNYfWfcAAAAASUVORK5CYII=";
|
|
10382
|
+
|
|
10383
|
+
// src/fetch-map/patterns/cross-hatch-medium.png
|
|
10384
|
+
var cross_hatch_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAKASURBVHic7ZpNbgMxCIWtnqD33+RI7VF6g2STSg4/D2zTAaIiZVEb8zEeG/WhGWOM+/OH7D79voDfjfh6Y2byzQUzGCVxU3ytB8rmywMCHI3N8M/nmJaExIrk/9oKX5xAuz3PSQ+vJYHedgSf2gqfOVj3jfrSh5eSsO7mCV+zFT4LjIzeuYiY6XxvYaLVFiXhjZnOp4G0BdKd15KgMVB1TuV7A6CC530AKYlU/s4R0gqe97hJhSmLv1xENLjki8z6x+YqvuksFRwP3Howb8y/5sPCRO8cSoLOoSTmuWz+0DZBKzhSElpiUhLSWDafJYGqLQVaR3MGoreSzWdJWAXHey+pL7qXl/M/iOM3+fvHCBxtqfyuej6EX0nPX86vpOcz+GbBuUrPZ/FNRxrYMq9vlX6CmYS32Kz4VuonvCxsq+cP+UsByun5ID5bgI5QJT0fyWcLkFXR86F8765Kvpq16SdQB5TEPJet50P42oSUhDSWreeP+NbRmIHorWTr+V2+q+B472W7fgLtB5xay35C1BHs2k+Am+AtQt37CeIE2u15LlvPR/GZg1VwqO879BNYYGRV9Hwo31uYKun5MD4NpC2oqOeP+d4AlfX8Nn/nCFXV8zv85SJSWs9v8E3nNnp+k/8eev6AP7RNaKPnA/gsiU56PorPkrAKjvdeUt9S/YT/7wMm66rnQ/in39ufFqEy3wdQ66Tnd/lmEemk53f4piMNbJnXt0o/wUzCW2xWfCv1E14WttXzh/ylAOX0fBCfLUBHqJKej+SzBciq6PlQvndXJV/N2vQTqANKYp7L1vMhfG1CSkIay9bzR3zraMxA9Fay9fwu31VwvPeyXT/hAZMuKfjIf3HUAAAAAElFTkSuQmCC";
|
|
10385
|
+
|
|
10386
|
+
// src/fetch-map/patterns/cross-hatch-small.png
|
|
10387
|
+
var cross_hatch_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAHqSURBVHic7ZhRagMxDERFT5D7/+RI26PkBu5PFipZirqmE41aB/wRR89LhoG3WERkPJeIyP3b93NPzN7h7HXmp4POoZ/sRasTPyV0e+4dBvZmGXm5ytvaDGcw2jv+AK+S9wa86niHVfPRH8z45YrdzYO68uoQm1S0vNp15aeEXmnGPuTWnJcPufb5NN8fzXmRxQp18nzGq9qIGfT2qj3/2+8J6gcvqWpPo/k2nke9J4QVYfE0nLepDDJPo3mVBpun4bx9D2Dz9Ft4rxZMnkbzUwjVnn47z+5pNK+S8wa6eH6Vv1wxrzmdeXWITSpanTyf8VNCVJ5G8//9PuAhixXq5PmMV7URM+jttfN8wqthL6lqT+/7ADAf1obF03DepjLIPI3mVRp0nkbz+z4gqAWTp9H8FAKbp+E8u6fRvErOG6j29L4PAPPqEJtUtDp5PuOnhKg8jeb3fcBihTp5PuNVbcQMenvtPJ/wathLqtrT+z4AzIe1YfE0nLepDDJPo3mVBp2n0fy+DwhqweRpND+FcH5YPA3n2T2N5tOBak/v+wAwrw6xSUWrk+czfkqIytNoft8HLFaok+czXtVGzOCrvTaeT3g17CVV7Wma+4DoAeyez/iwNiyehvM2lUHmaTSv0rBDXkitPJ/xX9QhcjSKhBtGAAAAAElFTkSuQmCC";
|
|
10388
|
+
|
|
10389
|
+
// src/fetch-map/patterns/dots-large.png
|
|
10390
|
+
var dots_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABJSURBVHic7dixEQAgDAMxH/vvDDskBReQ+h/ATpKduv1ADwAAwJduz9Gr/WrEAAAAMNjoPe8PAAAAgJLRe94fAAAAACWj93y3PwvzJ98DYTY6AAAAAElFTkSuQmCC";
|
|
10391
|
+
|
|
10392
|
+
// src/fetch-map/patterns/dots-medium.png
|
|
10393
|
+
var dots_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABdSURBVHic7daxDcBADAMxI/vv/Jkg6YQXYLLVAKeZmTPfzoIdgNVuZ+jq/vyMALBAdaf9AACIqu60HwAAUdWd9gMAIKq6034AAERVd9oPAICo6k77AQAQVd3p9P4CKgaPf9S3g48AAAAASUVORK5CYII=";
|
|
10394
|
+
|
|
10395
|
+
// src/fetch-map/patterns/dots-small.png
|
|
10396
|
+
var dots_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAB8SURBVHic7dSxDQAxDAMx4/ffOSl/A0WAyc69TzMzZ35n4c16r1/w6f0NrFfVpA2AuKombQDEVTVpAyCuqkkbAHFVTdoAiKtq0gZAXFWTNgDiqpq0ARBX1aQNgLiqJm0AxFU1aQMgrqpJGwBxVU3aAIiratIGQFxVk+n7ApyMHh3vKZDHAAAAAElFTkSuQmCC";
|
|
10397
|
+
|
|
10398
|
+
// src/fetch-map/patterns/checker-large.png
|
|
10399
|
+
var checker_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAAC7SURBVHic7dhRCsJQEMXQV/e/57oD56scHZPfciGEFnGuc859PnMNz396/xrG6ymAFtBM39fR3+jT+79/AwqgBTQF0AKaAmgBzfXtv9P9F3iYAmgBTQG0gKYAWkDTPWAYr6cAWkBTAC2gKYAW0HQPGMbrKYAW0BRAC2gKoAU03QOG8XoKoAU0BdACmgJoAU33gGG8ngJoAU0BtICmAFpA0z1gGK+nAFpAUwAtoCmAFtB0DxjG6ymAFtC8AfltJHRjA+VQAAAAAElFTkSuQmCC";
|
|
10400
|
+
|
|
10401
|
+
// src/fetch-map/patterns/checker-medium.png
|
|
10402
|
+
var checker_medium_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACpSURBVHic7dYxDoNAAAPBvfz/z6EOD2AjvNOhayzDCR/gy69ze371+Ydx97aw38jT5/NfQAXYAWzn3+5kf4GHVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGVYAdwNYOYFwF2AFs7QDGXajSiGiQ1/fcAAAAAElFTkSuQmCC";
|
|
10403
|
+
|
|
10404
|
+
// src/fetch-map/patterns/checker-small.png
|
|
10405
|
+
var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACgSURBVHic7dRBCoNQFEPR1P3vuZ1UEBcQAv8ccPB0am6SfP/P7aj78/rwfHfEfYWtX7J9H/8HaEDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjapAaUaUDY2qQGlGlA2NqkBpRpQNjaZPv+AQpgHkxA3R9BAAAAAElFTkSuQmCC";
|
|
10406
|
+
|
|
10407
|
+
// src/fetch-map/patterns/solid.png
|
|
10408
|
+
var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
|
|
10409
|
+
|
|
10410
|
+
// src/fetch-map/pattern-atlas-runtime.ts
|
|
10411
|
+
var CELL_URLS = {
|
|
10412
|
+
"hlines-large": hlines_large_default,
|
|
10413
|
+
"hlines-medium": hlines_medium_default,
|
|
10414
|
+
"hlines-small": hlines_small_default,
|
|
10415
|
+
"vlines-large": vlines_large_default,
|
|
10416
|
+
"vlines-medium": vlines_medium_default,
|
|
10417
|
+
"vlines-small": vlines_small_default,
|
|
10418
|
+
"diag-left-large": diag_left_large_default,
|
|
10419
|
+
"diag-left-medium": diag_left_medium_default,
|
|
10420
|
+
"diag-left-small": diag_left_small_default,
|
|
10421
|
+
"diag-right-large": diag_right_large_default,
|
|
10422
|
+
"diag-right-medium": diag_right_medium_default,
|
|
10423
|
+
"diag-right-small": diag_right_small_default,
|
|
10424
|
+
"cross-hatch-large": cross_hatch_large_default,
|
|
10425
|
+
"cross-hatch-medium": cross_hatch_medium_default,
|
|
10426
|
+
"cross-hatch-small": cross_hatch_small_default,
|
|
10427
|
+
"dots-large": dots_large_default,
|
|
10428
|
+
"dots-medium": dots_medium_default,
|
|
10429
|
+
"dots-small": dots_small_default,
|
|
10430
|
+
"checker-large": checker_large_default,
|
|
10431
|
+
"checker-medium": checker_medium_default,
|
|
10432
|
+
"checker-small": checker_small_default,
|
|
10433
|
+
solid: solid_default
|
|
10434
|
+
};
|
|
10435
|
+
function createCanvas(w, h) {
|
|
10436
|
+
if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
|
|
10437
|
+
if (typeof document !== "undefined") {
|
|
10438
|
+
const c = document.createElement("canvas");
|
|
10439
|
+
c.width = w;
|
|
10440
|
+
c.height = h;
|
|
10441
|
+
return c;
|
|
10442
|
+
}
|
|
10443
|
+
throw new Error(
|
|
10444
|
+
"carto-api-client: no Canvas available to assemble the pattern atlas"
|
|
10445
|
+
);
|
|
10446
|
+
}
|
|
10447
|
+
async function loadImage(dataUrl) {
|
|
10448
|
+
if (typeof createImageBitmap !== "undefined" && typeof fetch !== "undefined") {
|
|
10449
|
+
const blob = await (await fetch(dataUrl)).blob();
|
|
10450
|
+
return createImageBitmap(blob);
|
|
10451
|
+
}
|
|
10452
|
+
return new Promise((resolve, reject) => {
|
|
10453
|
+
const img = new Image();
|
|
10454
|
+
img.onload = () => resolve(img);
|
|
10455
|
+
img.onerror = reject;
|
|
10456
|
+
img.src = dataUrl;
|
|
10457
|
+
});
|
|
10458
|
+
}
|
|
10459
|
+
async function toDataURL(canvas) {
|
|
10460
|
+
if ("convertToBlob" in canvas) {
|
|
10461
|
+
const blob = await canvas.convertToBlob({ type: "image/png" });
|
|
10462
|
+
return new Promise((resolve) => {
|
|
10463
|
+
const reader = new FileReader();
|
|
10464
|
+
reader.onload = () => resolve(reader.result);
|
|
10465
|
+
reader.readAsDataURL(blob);
|
|
10466
|
+
});
|
|
10467
|
+
}
|
|
10468
|
+
return canvas.toDataURL("image/png");
|
|
10469
|
+
}
|
|
10470
|
+
var atlasPromise;
|
|
10471
|
+
function assemblePatternAtlas() {
|
|
10472
|
+
if (!atlasPromise) atlasPromise = build();
|
|
10473
|
+
return atlasPromise;
|
|
10474
|
+
}
|
|
10475
|
+
async function build() {
|
|
10476
|
+
const canvas = createCanvas(ATLAS_W, ATLAS_H);
|
|
10477
|
+
const ctx = canvas.getContext("2d");
|
|
10478
|
+
if (!ctx)
|
|
10479
|
+
throw new Error(
|
|
10480
|
+
"carto-api-client: 2D context unavailable for pattern atlas"
|
|
10481
|
+
);
|
|
10482
|
+
const images = {};
|
|
10483
|
+
await Promise.all(
|
|
10484
|
+
Object.entries(CELL_URLS).map(async ([key, url]) => {
|
|
10485
|
+
images[key] = await loadImage(url);
|
|
10486
|
+
})
|
|
10487
|
+
);
|
|
10488
|
+
for (const [key, frame] of Object.entries(PATTERN_ATLAS_MAPPING)) {
|
|
10489
|
+
const img = images[key];
|
|
10490
|
+
if (img) ctx.drawImage(img, frame.x, frame.y, CELL, CELL);
|
|
10491
|
+
}
|
|
10492
|
+
return toDataURL(canvas);
|
|
10493
|
+
}
|
|
10494
|
+
|
|
10495
|
+
// src/fetch-map/pattern-atlas.ts
|
|
10496
|
+
function getPatternAtlas() {
|
|
10497
|
+
const runtime = globalThis.__CARTO_RUNTIME_ATLAS__ === true;
|
|
10498
|
+
return runtime ? assemblePatternAtlas() : BAKED_ATLAS_URL;
|
|
10499
|
+
}
|
|
10500
|
+
|
|
10285
10501
|
// src/fetch-map/parse-map.ts
|
|
10286
10502
|
function getLayerDescriptor({
|
|
10287
10503
|
mapConfig,
|
|
@@ -10505,6 +10721,10 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
10505
10721
|
const result = {};
|
|
10506
10722
|
const updateTriggers = {};
|
|
10507
10723
|
const scales = {};
|
|
10724
|
+
const isVectorTile = layerType === "mvt" || layerType === "tileset";
|
|
10725
|
+
const geometry = data.tilestats?.layers?.[0]?.geometry;
|
|
10726
|
+
const isLine = geometry === "Line" || geometry === "LineString" || geometry === "MultiLineString";
|
|
10727
|
+
const isPolygon = geometry === "Polygon" || geometry === "MultiPolygon";
|
|
10508
10728
|
{
|
|
10509
10729
|
const { colorField, colorScale } = visualChannels;
|
|
10510
10730
|
const { colorRange } = visConfig;
|
|
@@ -10665,6 +10885,72 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
10665
10885
|
};
|
|
10666
10886
|
}
|
|
10667
10887
|
}
|
|
10888
|
+
{
|
|
10889
|
+
const strokeVisible = isLine || isPolygon && Boolean(visConfig.stroked);
|
|
10890
|
+
if (isVectorTile && strokeVisible) {
|
|
10891
|
+
const { lineStyleField, lineStyleScale } = visualChannels;
|
|
10892
|
+
const { lineStyleRange } = visConfig;
|
|
10893
|
+
if (visConfig.lineStyle && visConfig.lineStyle !== "solid") {
|
|
10894
|
+
if (visConfig.lineStyle === "dotted") {
|
|
10895
|
+
result.lineCapRounded = true;
|
|
10896
|
+
}
|
|
10897
|
+
result.lineStyle = visConfig.lineStyle;
|
|
10898
|
+
if (visConfig.dashArray) {
|
|
10899
|
+
result.dashArray = visConfig.dashArray;
|
|
10900
|
+
result.getDashArray = visConfig.dashArray;
|
|
10901
|
+
}
|
|
10902
|
+
}
|
|
10903
|
+
if (lineStyleField && lineStyleScale && lineStyleRange) {
|
|
10904
|
+
const { accessor, ...scaleProps } = getLineStyleAccessor(
|
|
10905
|
+
lineStyleField,
|
|
10906
|
+
lineStyleRange,
|
|
10907
|
+
data
|
|
10908
|
+
);
|
|
10909
|
+
result.getDashArray = accessor;
|
|
10910
|
+
scales.lineStyle = updateTriggers.getDashArray = {
|
|
10911
|
+
field: lineStyleField,
|
|
10912
|
+
type: lineStyleScale,
|
|
10913
|
+
...scaleProps
|
|
10914
|
+
};
|
|
10915
|
+
const dashArrays = [
|
|
10916
|
+
...lineStyleRange.dashArrayMap.map(({ dashArray }) => dashArray),
|
|
10917
|
+
...lineStyleRange.othersDashArray ? [lineStyleRange.othersDashArray] : []
|
|
10918
|
+
];
|
|
10919
|
+
if (dashArrays.some(([dash]) => dash === 0)) {
|
|
10920
|
+
result.lineCapRounded = true;
|
|
10921
|
+
}
|
|
10922
|
+
}
|
|
10923
|
+
}
|
|
10924
|
+
}
|
|
10925
|
+
{
|
|
10926
|
+
result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
|
|
10927
|
+
if (visConfig.filled && visConfig.fillPatternEnabled) {
|
|
10928
|
+
result.fillPatternAtlas = getPatternAtlas();
|
|
10929
|
+
result.fillPatternMapping = PATTERN_ATLAS_MAPPING;
|
|
10930
|
+
result.fillPatternMask = true;
|
|
10931
|
+
result.getFillPatternScale = visConfig.fillPatternSize ?? 1;
|
|
10932
|
+
result.fillPattern = visConfig.fillPattern;
|
|
10933
|
+
const { fillPatternField, fillPatternScale } = visualChannels;
|
|
10934
|
+
const { fillPatternRange, fillPatternDensity } = visConfig;
|
|
10935
|
+
if (fillPatternField && fillPatternScale && fillPatternRange) {
|
|
10936
|
+
const { accessor, ...scaleProps } = getFillPatternAccessor(
|
|
10937
|
+
fillPatternField,
|
|
10938
|
+
fillPatternRange,
|
|
10939
|
+
fillPatternDensity,
|
|
10940
|
+
data
|
|
10941
|
+
);
|
|
10942
|
+
result.getFillPattern = accessor;
|
|
10943
|
+
scales.fillPattern = updateTriggers.getFillPattern = {
|
|
10944
|
+
field: fillPatternField,
|
|
10945
|
+
type: fillPatternScale,
|
|
10946
|
+
...scaleProps
|
|
10947
|
+
};
|
|
10948
|
+
} else {
|
|
10949
|
+
const key = `${visConfig.fillPattern}-${fillPatternDensity ?? "medium"}`;
|
|
10950
|
+
result.getFillPattern = () => key;
|
|
10951
|
+
}
|
|
10952
|
+
}
|
|
10953
|
+
}
|
|
10668
10954
|
{
|
|
10669
10955
|
const { heightField, heightScale } = visualChannels;
|
|
10670
10956
|
const { enable3d, heightRange } = visConfig;
|
|
@@ -10793,9 +11079,7 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
10793
11079
|
} = secondaryLabel || {};
|
|
10794
11080
|
result.getText = mainLabel.field && getTextAccessor(mainLabel.field, data);
|
|
10795
11081
|
const getSecondaryText = secondaryField && getTextAccessor(secondaryField, data);
|
|
10796
|
-
|
|
10797
|
-
const isLineOrPolygon = geometry === "Polygon" || geometry === "MultiPolygon" || geometry === "Line" || geometry === "LineString" || geometry === "MultiLineString";
|
|
10798
|
-
if (isLineOrPolygon && (layerType === "tileset" || layerType === "mvt")) {
|
|
11082
|
+
if ((isLine || isPolygon) && isVectorTile) {
|
|
10799
11083
|
const uniqueIdProperty = visConfig.textLabelUniqueIdField;
|
|
10800
11084
|
result.autoLabels = uniqueIdProperty ? { uniqueIdProperty } : true;
|
|
10801
11085
|
result.pointType = "text";
|
|
@@ -11568,10 +11852,12 @@ export {
|
|
|
11568
11852
|
getColumnNameFromGeoColumn,
|
|
11569
11853
|
getDataFilterExtensionProps,
|
|
11570
11854
|
getDefaultAggregationExpColumnAliasForLayerType,
|
|
11855
|
+
getFillPatternAccessor,
|
|
11571
11856
|
getFilter,
|
|
11572
11857
|
getIconUrlAccessor,
|
|
11573
11858
|
getLayerDescriptor,
|
|
11574
11859
|
getLayerProps,
|
|
11860
|
+
getLineStyleAccessor,
|
|
11575
11861
|
getMaxMarkerSize,
|
|
11576
11862
|
getSizeAccessor,
|
|
11577
11863
|
getSorter,
|