From 9fa5ad71656086d6f25a1ed6ec688d16f8478718 Mon Sep 17 00:00:00 2001 From: Chris Vietor Date: Thu, 3 Dec 2020 18:21:16 +0100 Subject: [PATCH 1/4] chore: addLayers refactored feat: addLayers supports FillLayer --- demo/app/main-view-model.ts | 208 +++++------ src/layers/layer-factory.android.ts | 309 +++++++++++++++++ src/layers/layer-factory.d.ts | 5 + src/layers/layer-factory.ios.ts | 213 ++++++++++++ src/mapbox.android.ts | 519 +--------------------------- src/mapbox.common.ts | 1 + src/mapbox.ios.ts | 414 +--------------------- 7 files changed, 654 insertions(+), 1015 deletions(-) create mode 100644 src/layers/layer-factory.android.ts create mode 100644 src/layers/layer-factory.d.ts create mode 100644 src/layers/layer-factory.ios.ts diff --git a/demo/app/main-view-model.ts b/demo/app/main-view-model.ts index 593cc85..cbcd2fa 100644 --- a/demo/app/main-view-model.ts +++ b/demo/app/main-view-model.ts @@ -380,8 +380,6 @@ export class HelloWorldModel extends Observable { ); } - // ------------------------------------------------------------------------------- - public doAddAndClusterGeoJSON(): void { this.mapbox .addGeoJsonClustered({ @@ -422,146 +420,118 @@ export class HelloWorldModel extends Observable { try { this.mapbox - .addSource('custom-collection-1', { - type: 'geojson', - url: null, - data: { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [4.744720458984375, 52.47357958606801], - [5.108642578125, 52.24882376803033], - ], - }, - }, - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [4.823684692382513, 52.3701494345567], - }, - }, - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [4.8703765869140625, 52.3479242945069], - }, - }, - { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [4.7989654541015625, 52.40577019043], - [4.7866058349609375, 52.36008660493161], - [4.854583740234375, 52.32736657808751], - [4.9376678466796875, 52.338695481504814], - ], - }, + .addLayer({ + id: 'circle-with-source-object', + type: 'circle', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [4.823684692382513, 52.3701494345567], }, - ], + }, + }, + paint: { + 'circle-blur': 0.2, + 'circle-radius': 10, + 'circle-opacity': 0.65, + 'circle-color': '#ed6498', + 'circle-stroke-width': 4, + 'circle-stroke-color': '#3b0619', + 'circle-stroke-opacity': 0.75, }, }) - .then(() => { - console.log('source with id custom-collection-1 successfully added'); + .then(() => console.log('circle-with-source-object added')); - this.mapbox - .addLayer({ - id: 'line-layer-1', - type: 'line', - source: 'custom-collection-1', - layout: { - 'line-cap': 'butt', - 'line-join': 'bevel', - }, - paint: { - 'line-color': '#053481', - 'line-width': 5, - 'line-opacity': 0.8, - 'line-dash-array': [1, 1, 1, 1], - }, - }) - .then(() => console.log('line-layer-1 added to source custom-collection-1')); - - this.mapbox - .addLayer({ - id: 'circle-layer-1', - type: 'circle', - source: 'custom-collection-1', - paint: { - 'circle-radius': 2, - 'circle-opacity': 0.05, - 'circle-color': '#ed6498', - 'circle-stroke-width': 2, - 'circle-stroke-color': '#ed6498', + this.mapbox + .addLayer({ + id: 'line-with-source-object', + type: 'line', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'LineString', + coordinates: [ + [4.80926513671875, 52.27403984182285], + [4.9383544921875, 52.30931825948968], + ], }, - }) - .then(() => console.log('circle-layer-1 added to source custom-collection-1')); - }); + }, + }, + layout: { + 'line-cap': 'round', + 'line-join': 'round', + 'line-blur': 0.2, + }, + paint: { + 'line-color': '#ab111b', + 'line-width': 5, + 'line-opacity': 0.7, + 'line-dash-array': [1, 1, 1, 1], + }, + }) + .then(() => console.log('line-with-source-object added')); this.mapbox.addLayer({ - id: 'layer-with-source-object', - type: 'line', - source: { - type: 'geojson', - data: { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [4.80926513671875, 52.27403984182285], - [4.9383544921875, 52.30931825948968], - ], + id: 'fill-with-source-object', + type: 'fill', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Polygon', + coordinates: [ + [ + [4.864797592163086, 52.346980527061895], + [4.923677444458008, 52.346980527061895], + [4.923677444458008, 52.36742431104005], + [4.864797592163086, 52.36742431104005], + [4.864797592163086, 52.346980527061895], + ], + ], + }, }, - } - }, - layout: { - 'line-cap': 'square', - 'line-join': 'round', - 'line-blur': 15 - }, - paint: { - 'line-color': '#5dbcd2', - 'line-width': 8, - 'line-opacity': 0.5 - } - }).then(() => console.log('layer-with-source-object added')); + }, + paint: { + 'fill-antialias': 'true', + 'fill-color': '#5dbcd2', + 'fill-opacity': 0.65, + 'fill-outline-color': '#23474f', + 'fill-translate': [0, 0], + 'fill-translate-anchor': 'map', + }, + }) + .then(() => console.log('fill-with-source-object added')); } catch (error) { console.error('Mapbox doAddLayerAndSource error :', error); } - - } public doRemoveLayerAndSource(): void { Promise.all([ - this.mapbox.removeLayer('line-layer-1'), - this.mapbox.removeLayer('circle-layer-1'), - this.mapbox.removeLayer('layer-with-source-object') + this.mapbox.removeLayer('circle-with-source-object'), + this.mapbox.removeLayer('line-with-source-object'), + this.mapbox.removeLayer('fill-with-source-object'), ]).then(() => { return Promise.all([ this.mapbox.removeSource('custom-collection-1'), - this.mapbox.removeSource('layer-with-source-object_source') + this.mapbox.removeSource('line-with-source-object_source'), + this.mapbox.removeSource('circle-with-source-object_source'), + this.mapbox.removeSource('fill-with-source-object_source'), ]); }) } - // =============================================================== - - // ------------------------------------------------------------------------------- - public doListOfflineRegions(): void { this.mapbox .listOfflineRegions({ @@ -587,8 +557,6 @@ export class HelloWorldModel extends Observable { ); } - // ------------------------------------------------------------------------------- - public doDeleteOfflineRegion(): void { this.mapbox .deleteOfflineRegion({ diff --git a/src/layers/layer-factory.android.ts b/src/layers/layer-factory.android.ts new file mode 100644 index 0000000..fefba9f --- /dev/null +++ b/src/layers/layer-factory.android.ts @@ -0,0 +1,309 @@ +import { Layer } from '../mapbox.android'; +import { LayerCommon } from '../mapbox.common'; + +export class LayerFactory { + static createLayer(style, source): Promise { + const layerProperties = this.parseProperties(style.type, Object.assign(style.paint, style.layout)); // TODO: handle defaults + + const sourceId = source.getId(); + let nativeLayer: com.mapbox.mapboxsdk.style.layers.Layer; + + switch (style.type) { + case 'line': + nativeLayer = new com.mapbox.mapboxsdk.style.layers.LineLayer(style.id, sourceId).withProperties(layerProperties); + break; + case 'circle': + nativeLayer = new com.mapbox.mapboxsdk.style.layers.CircleLayer(style.id, sourceId).withProperties(layerProperties); + break; + case 'fill': + nativeLayer = new com.mapbox.mapboxsdk.style.layers.FillLayer(style.id, sourceId).withProperties(layerProperties); + break; + default: + throw new Error(`Unknown layer type: ${style.type}`); + } + + var layer = new Layer(nativeLayer); + + return Promise.resolve(layer); + } + + private static parseProperties(layerType, propertiesObject) { + switch (layerType) { + case 'line': + return this.parsePropertiesForLineLayer(propertiesObject); + case 'circle': + return this.parsePropertiesForCircleLayer(propertiesObject); + case 'fill': + return this.parsePropertiesForFillLayer(propertiesObject); + default: + throw new Error(`Unknown layer type: ${layerType}`); + } + } + + private static parsePropertiesForLineLayer(propertiesObject) { + const lineProperties = []; + + if (!propertiesObject) { + return lineProperties; + } + + /* + line-blur ✓ + line-cap ✓ + line-color ✓ + line-dasharray ✓ + line-gap-width + line-gradient + line-join ✓ + line-miter-limit + line-offset + line-opacity ✓ + line-pattern + line-round-limit + line-sort-key + line-translate + line-translate-anchor + line-width ✓ + visibility + */ + + if (propertiesObject['line-blur']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineBlur(new java.lang.Float(propertiesObject['line-blur']))); + } + + if (propertiesObject['line-cap']) { + let property; + + switch (propertiesObject['line-cap']) { + case 'round': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_ROUND; + break; + case 'square': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_SQUARE; + break; + case 'butt': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_BUTT; + break; + default: + throw new Error('Unknown line-cap value'); + } + + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(property)); + } + + if (propertiesObject['line-color']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineColor(propertiesObject['line-color'])); + } + + if (propertiesObject['line-dash-array']) { + const dashArray = Array.create('java.lang.Float', propertiesObject['line-dash-array'].length); + + for (let i = 0; i < propertiesObject['line-dash-array'].length; i++) { + dashArray[i] = new java.lang.Float(propertiesObject['line-dash-array'][i]); + } + + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineDasharray(dashArray)); + } + + if (propertiesObject['line-join']) { + let property; + + switch (propertiesObject['line-join']) { + case 'bevel': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_BEVEL; + break; + case 'miter': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_MITER; + break; + case 'round': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_ROUND; + break; + default: + throw new Error('Unknown line-join value'); + } + + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineJoin(property)); + } + + if (propertiesObject['line-opacity']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOpacity(new java.lang.Float(propertiesObject['line-opacity']))); + } + + if (propertiesObject['line-width']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth(new java.lang.Float(propertiesObject['line-width']))); + } + + return lineProperties; + } + + private static parsePropertiesForCircleLayer(propertiesObject) { + const circleProperties = []; + + if (!propertiesObject) { + return circleProperties; + } + + /* + circle-blur ✓ + circle-color ✓ + circle-opacity ✓ + circle-pitch-alignment + circle-pitch-scale + circle-radius ✓ + circle-sort-key + circle-stroke-color ✓ + circle-stroke-opacity ✓ + circle-stroke-width ✓ + circle-translate + circle-translate-anchor + visibility + */ + + if (propertiesObject['circle-blur']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleBlur(new java.lang.Float(propertiesObject['circle-blur']))); + } + + if (propertiesObject['circle-color']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor(propertiesObject['circle-color'])); + } + + if (propertiesObject['circle-opacity']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleOpacity(new java.lang.Float(propertiesObject['circle-opacity']))); + } + + if (propertiesObject['circle-radius']) { + // we have two options for a radius. We might have a fixed float or an expression + + if (typeof propertiesObject['circle-radius'] == 'number') { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius(new java.lang.Float(propertiesObject['circle-radius']))); + } else { + if (!propertiesObject['circle-radius'].stops) { + throw new Error('No radius or stops provided to addCircleLayer.'); + } + + const stopArgs = []; + + for (let i = 0; i < propertiesObject['circle-radius'].stops.length; i++) { + const stop = propertiesObject['circle-radius'].stops[i]; + stopArgs.push(com.mapbox.mapboxsdk.style.expressions.Expression.stop(new java.lang.Float(stop[0]), new java.lang.Float(stop[1]))); + } + + let base = 2; + + if (propertiesObject['circle-radius'].stops.base) { + base = propertiesObject['circle-radius'].stops.base; + } + + circleProperties.push( + com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius( + com.mapbox.mapboxsdk.style.expressions.Expression.interpolate( + com.mapbox.mapboxsdk.style.expressions.Expression.exponential(new java.lang.Float(base)), + com.mapbox.mapboxsdk.style.expressions.Expression.zoom(), + stopArgs + ) + ) + ); + } + } + + if (propertiesObject['circle-stroke-color']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeColor(propertiesObject['circle-stroke-color'])); + } + + if (propertiesObject['circle-stroke-opacity']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeOpacity(new java.lang.Float(propertiesObject['circle-stroke-opacity']))); + } + + if (propertiesObject['circle-stroke-width']) { + circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeWidth(new java.lang.Float(propertiesObject['circle-stroke-width']))); + } + + return circleProperties; + } + + private static parsePropertiesForFillLayer(propertiesObject) { + const fillProperties = []; + + if (!propertiesObject) { + return fillProperties; + } + + /* + fill-antialias ✓ + fill-color ✓ + fill-opacity ✓ + fill-outline-color ✓ + fill-pattern ✓ + fill-sort-key + fill-translate ✓ + fill-translate-anchor ✓ + visibility + */ + + if (propertiesObject['fill-color']) { + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillColor(propertiesObject['fill-color'])); + } + + if (propertiesObject['fill-opacity']) { + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOpacity(new java.lang.Float(propertiesObject['fill-opacity']))); + } + + if (propertiesObject['fill-antialias']) { + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillAntialias(new java.lang.Boolean(propertiesObject['fill-antialias']))); + } + + if (propertiesObject['fill-outline-color']) { + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOutlineColor(propertiesObject['fill-outline-color'])); + } + + if (propertiesObject['fill-pattern']) { + // TODO: can be string or string[] + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillPattern(propertiesObject['fill-pattern'])); + } + + if (propertiesObject['fill-translate']) { + const fillTranslateArray = Array.create('java.lang.Float', propertiesObject['fill-translate'].length); + + for (let i = 0; i < propertiesObject['fill-translate'].length; i++) { + fillTranslateArray[i] = new java.lang.Float(propertiesObject['fill-translate'][i]); + } + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillTranslate(fillTranslateArray)); + } + + if (propertiesObject['fill-translate-anchor']) { + fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillTranslateAnchor(propertiesObject['fill-translate-anchor'])); + } + + return fillProperties; + } + + private static parseLayoutProperties(layoutObject) { + const layoutProperties = []; + + if (!layoutObject) { + return layoutProperties; + } + + if (layoutObject['line-cap']) { + let property; + + switch (layoutObject['line-cap']) { + case 'round': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_ROUND; + break; + case 'square': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_SQUARE; + break; + case 'butt': + property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_BUTT; + break; + default: + throw new Error('Unknown line-cap value'); + } + + layoutProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(property)); + } + + return layoutProperties; + } +} diff --git a/src/layers/layer-factory.d.ts b/src/layers/layer-factory.d.ts new file mode 100644 index 0000000..20d09fc --- /dev/null +++ b/src/layers/layer-factory.d.ts @@ -0,0 +1,5 @@ +import { LayerCommon } from '..'; + +declare class LayerFactory { + static createLayer(style, source): Promise; +} \ No newline at end of file diff --git a/src/layers/layer-factory.ios.ts b/src/layers/layer-factory.ios.ts new file mode 100644 index 0000000..4d066b5 --- /dev/null +++ b/src/layers/layer-factory.ios.ts @@ -0,0 +1,213 @@ +import { Color } from '@nativescript/core'; + +import { LayerCommon } from '../mapbox.common'; +import { Layer } from '../mapbox.ios'; + +export class LayerFactory { + static createLayer(style, source): Promise { + let nativeLayer; + switch (style.type) { + case 'line': + nativeLayer = MGLLineStyleLayer.alloc().initWithIdentifierSource(style.id, source); + break; + case 'circle': + nativeLayer = MGLCircleStyleLayer.alloc().initWithIdentifierSource(style.id, source); + break; + case 'fill': + nativeLayer = MGLFillStyleLayer.alloc().initWithIdentifierSource(style.id, source); + break; + default: + throw new Error(`Unknown layer type: ${style.type}`); + } + + const layerProperties = this.parseProperties(style.type, Object.assign(style.paint, style.layout)); // TODO: handle defaults + + for (const propKey in layerProperties) { + if (Object.prototype.hasOwnProperty.call(layerProperties, propKey)) { + nativeLayer[propKey] = layerProperties[propKey]; + } + } + + var layer = new Layer(nativeLayer); + + return Promise.resolve(layer); + } + + private static parseProperties(layerType, propertiesObject) { + switch (layerType) { + case 'line': + return this.parsePropertiesForLineLayer(propertiesObject); + case 'circle': + return this.parsePropertiesForCircleLayer(propertiesObject); + case 'fill': + return this.parsePropertiesForFillLayer(propertiesObject); + default: + throw new Error(`Unknown layer type: ${layerType}`); + } + } + + private static parsePropertiesForLineLayer(propertiesObject) { + const lineProperties = {}; + + if (!propertiesObject) { + return lineProperties; + } + + /* + line-blur ✓ + line-cap ✓ + line-color ✓ + line-dasharray ✓ + line-gap-width + line-gradient + line-join ✓ + line-miter-limit + line-offset + line-opacity ✓ + line-pattern + line-round-limit + line-sort-key + line-translate + line-translate-anchor + line-width ✓ + visibility + */ + + if (propertiesObject['line-blur']) { + lineProperties['lineBlur'] = NSExpression.expressionForConstantValue(propertiesObject['line-blur']); + } + + if (propertiesObject['line-cap']) { + lineProperties['lineCap'] = NSExpression.expressionForConstantValue(propertiesObject['line-cap']); + } + + if (propertiesObject['line-color']) { + lineProperties['lineColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['line-color']).ios); + } + + if (propertiesObject['line-dash-array']) { + lineProperties['lineDashPattern'] = NSExpression.expressionForConstantValue(propertiesObject['line-dash-array']); + } + + if (propertiesObject['line-join']) { + lineProperties['lineJoin'] = NSExpression.expressionForConstantValue(propertiesObject['line-join']); + } + + if (propertiesObject['line-opacity']) { + lineProperties['lineOpacity'] = NSExpression.expressionForConstantValue(propertiesObject['line-opacity']); + } + + if (propertiesObject['line-width']) { + lineProperties['lineWidth'] = NSExpression.expressionForConstantValue(propertiesObject['line-width']); + } + + return lineProperties; + } + + private static parsePropertiesForCircleLayer(propertiesObject) { + const circleProperties = {}; + + if (!propertiesObject) { + return circleProperties; + } + + /* + circle-blur ✓ + circle-color ✓ + circle-opacity ✓ + circle-pitch-alignment + circle-pitch-scale + circle-radius ✓ + circle-sort-key + circle-stroke-color ✓ + circle-stroke-opacity ✓ + circle-stroke-width ✓ + circle-translate + circle-translate-anchor + visibility + */ + + if (propertiesObject['circle-blur']) { + circleProperties['circleBlur'] = NSExpression.expressionForConstantValue(propertiesObject['circle-blur']); + } + + if (propertiesObject['circle-color']) { + circleProperties['circleColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['circle-color']).ios); + } + + if (propertiesObject['circle-opacity']) { + circleProperties['circleOpacity'] = NSExpression.expressionForConstantValue(propertiesObject['circle-opacity']); + } + + if (propertiesObject['circle-radius']) { + if (typeof propertiesObject['circle-radius'] !== 'number') { + throw new Error('Unsupported circle-radius type'); // TODO: Implement circle radius with stops + } + circleProperties['circleRadius'] = NSExpression.expressionForConstantValue(propertiesObject['circle-radius']); + } + + if (propertiesObject['circle-stroke-color']) { + circleProperties['circleStrokeColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['circle-stroke-color']).ios); + } + + if (propertiesObject['circle-stroke-opacity']) { + circleProperties['circleStrokeOpacity'] = NSExpression.expressionForConstantValue(propertiesObject['circle-stroke-opacity']); + } + + if (propertiesObject['circle-stroke-width']) { + circleProperties['circleStrokeWidth'] = NSExpression.expressionForConstantValue(propertiesObject['circle-stroke-width']); + } + + return circleProperties; + } + + private static parsePropertiesForFillLayer(propertiesObject) { + const fillProperties = {}; + + if (!propertiesObject) { + return fillProperties; + } + + /* + fill-antialias ✓ + fill-color ✓ + fill-opacity ✓ + fill-outline-color ✓ + fill-pattern ✓ + fill-sort-key + fill-translate ✓ + fill-translate-anchor ✓ + visibility + */ + + if (propertiesObject['fill-antialias']) { + fillProperties['fillAntialiased'] = NSExpression.expressionForConstantValue(propertiesObject['fill-antialias']); + } + + if (propertiesObject['fill-color']) { + fillProperties['fillColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['fill-color']).ios); + } + + if (propertiesObject['fill-opacity']) { + fillProperties['fillOpacity'] = NSExpression.expressionForConstantValue(propertiesObject['fill-opacity']); + } + + if (propertiesObject['fill-outline-color']) { + fillProperties['fillOutlineColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['fill-outline-color']).ios); + } + + if (propertiesObject['fill-pattern']) { + fillProperties['fillPattern'] = NSExpression.expressionForConstantValue(propertiesObject['fill-pattern']); + } + + if (propertiesObject['fill-translate']) { + fillProperties['fillTranslation'] = NSExpression.expressionForConstantValue(propertiesObject['fill-translate']); + } + + if (propertiesObject['fill-translate-anchor']) { + fillProperties['fillTranslationAnchor'] = NSExpression.expressionForConstantValue(propertiesObject['fill-translate-anchor']); + } + + return fillProperties; + } +} diff --git a/src/mapbox.android.ts b/src/mapbox.android.ts index 3123898..a62221f 100755 --- a/src/mapbox.android.ts +++ b/src/mapbox.android.ts @@ -6,9 +6,9 @@ import { request } from '@nativescript-community/perms'; import { AndroidApplication, Application, Color, File, Trace, Utils, knownFolders, path } from '@nativescript/core'; -import { AndroidActivityBundleEventData, AndroidActivityEventData } from '@nativescript/core/application/application-interfaces'; import { getImage } from '@nativescript/core/http'; import { GeoUtils } from './geo.utils'; +import { LayerFactory } from './layers/layer-factory'; import { AddExtrusionOptions, AddGeoJsonClusteredOptions, @@ -2006,7 +2006,6 @@ export class Mapbox extends MapboxCommon implements MapboxApi { * * @deprecated */ - addPolygon(options: AddPolygonOptions, nativeMap?): Promise { return new Promise((resolve, reject) => { try { @@ -2859,29 +2858,25 @@ export class Mapbox extends MapboxCommon implements MapboxApi { * @link https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers */ - public addLayer(style, nativeMap?): Promise { - let retval; + public async addLayer(style, nativeMap?): Promise { const theMap = nativeMap || this._mapboxMapInstance; if (!theMap) { return Promise.reject('No map has been loaded'); } - switch (style.type) { - case 'line': - retval = this.addLineLayer(style, theMap); - break; - - case 'circle': - retval = this.addCircleLayer(style, theMap); - break; - - default: - retval = Promise.reject("Mapbox:addLayer() Unsupported geometry type '" + style.type + "'"); - - break; + let source = null; + if (typeof style.source != 'string') { + this.addSource(style.id + '_source', style.source); + source = theMap.getStyle().getSource(style.id + '_source'); + } else { + source = style.source; } + + const layer = await LayerFactory.createLayer(style, source); + + this._mapboxMapInstance.getStyle().addLayer(layer.getNativeInstance()); - return retval; + return Promise.resolve(); } /** @@ -2891,7 +2886,6 @@ export class Mapbox extends MapboxCommon implements MapboxApi { * * @param {string} id */ - public async removeLayer(id: string, nativeMap?) { const theMap = nativeMap || this._mapboxMapInstance; @@ -2902,249 +2896,6 @@ export class Mapbox extends MapboxCommon implements MapboxApi { } } - // ------------------------------------------------------------------------------------- - - /** - * add a line layer - * - * Draws a line layer based on a mapbox-gl-js Mapbox Style. - * - * What sucks about this is that there is apparently no facility to add an event listener to a layer. - * - * The idea for this method is to make sharing code between mapbox-gl-js Typescript web applications - * and {N} native applications easier. - * - * For the moment this method only supports a source type of 'geojson' or a source by id added - * by addSource(). - * - * Example style for a line: - * - * { - * 'id': someid, - * 'type': 'line', - * 'source': { - * 'type': 'geojson', - * 'data': { - * "type": "Feature", - * "geometry": { - * "type": "LineString", - * "coordinates": [ [ lng, lat ], [ lng, lat ], ..... ] - * } - * } - * } - * }, - * 'layout': { - * 'line-cap': 'round', - * 'line-join': 'round' - * }, - * 'paint': { - * 'line-color': '#ed6498', - * 'line-width': 5, - * 'line-opacity': .8, - * 'line-dash-array': [ 1, 1, 1, ..] - * } - * - * Do not call this method directly. Use addLayer(). - * - * 'source' may also refer to a vector source - * - * 'source': { - * 'type': 'vector', - * 'url': '' - * } - * - * or it may be a string referring to the id of an already added source as in - * - * 'source': '' - * - * To enable catching of click events on a line, when a click handler is added - * to a line (using the onMapEvent() method above), the Annotations plugin is used to - * draw an invisible clickable line over the line layer. Sadly, the Annotations - * plugin does not support all the nice styling options of the line Layer so we're - * pushed into this compromise of drawing two lines, one for it's styling and the - * other for it's click handling. - * - * @param {object} style - a style following the Mapbox style specification. - * @param {any} nativeMapView - native map view (com.mapbox.mapboxsdk.maps.MapView) - * - * @return {Promise} - * - * @see addLineAnnotation() - * @see onMapEvent() - * - * @link https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers - * @link https://docs.mapbox.com/android/api/map-sdk/7.1.2/com/mapbox/mapboxsdk/maps/Style.html#addSource-com.mapbox.mapboxsdk.style.sources.Source- - * @link https://docs.nativescript.org/core-concepts/android-runtime/marshalling/java-to-js#array-of-primitive-types - */ - - private addLineLayer(style, nativeMapViewInstance?): Promise { - return new Promise((resolve, reject) => { - try { - if (style.type !== 'line') { - reject('Non line style passed to addLineLayer()'); - } - - // the source may be of type geojson, vector, or it may be the id of a source added by addSource(). - - let sourceId = null; - - if (typeof style.source != 'string') { - sourceId = style.id + '_source'; - - this.addSource(sourceId, style.source); - } else { - sourceId = style.source; - } - - const line = new com.mapbox.mapboxsdk.style.layers.LineLayer(style.id, sourceId); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after LineLayer'); - } - - let lineProperties = []; - - // some defaults if there's no paint property to the style - // - // NOTE polyline styles have separate paint and layout sections. - - if (typeof style.paint == 'undefined') { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): paint is undefined'); - } - - lineProperties = [ - com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineColor('red'), - com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth(new java.lang.Float(7)), - com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOpacity(new java.lang.Float(1)), - ]; - } else { - // color - - if (style.paint['line-color']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineColor(style.paint['line-color'])); - } - - // opacity - - if (style.paint['line-opacity']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOpacity(new java.lang.Float(style.paint['line-opacity']))); - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after opacity'); - } - - // line width - - if (style.paint['line-width']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth(new java.lang.Float(style.paint['line-width']))); - } - - // line dash array - - if (style.paint['line-dash-array']) { - // the line-dash-array requires some handstands to marhall it into a java Float[] type. - - const dashArray = Array.create('java.lang.Float', style.paint['line-dash-array'].length); - - for (let i = 0; i < style.paint['line-dash-array'].length; i++) { - dashArray[i] = new java.lang.Float(style.paint['line-dash-array'][i]); - } - - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineDasharray(dashArray)); - } - } // end of paint section. - - // now the layout section - const Property = com.mapbox.mapboxsdk.style.layers.Property; - if (typeof style.layout == 'undefined') { - lineProperties = [ - com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(Property.LINE_CAP_ROUND), - com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineJoin(Property.LINE_JOIN_ROUND), - ]; - } else { - // line cap - // - // FIXME: Add other styles. - - if (style.layout['line-cap']) { - let property: any; - - switch (style.layout['line-cap']) { - case 'round': - property = Property.LINE_CAP_ROUND; - - break; - - case 'square': - property = Property.LINE_CAP_SQUARE; - - break; - case 'butt': - property = Property.LINE_CAP_BUTT; - - break; - } - - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(property)); - } - - // line join. - - if (style.layout['line-join']) { - let property: any; - - switch (style.layout['line-join']) { - case 'round': - property = Property.LINE_JOIN_ROUND; - break; - case 'miter': - property = Property.LINE_JOIN_MITER; - break; - case 'bevel': - property = Property.LINE_JOIN_BEVEL; - break; - } - - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineJoin(property)); - } - } // end of else there was a layout section. - - line.setProperties(lineProperties); - - this._mapboxMapInstance.getStyle().addLayer(line); - - // In support for clickable GeoJSON features. - // - // FIXME: for the moment, because I have not been able to figure out how to pull the geometry - // from the source, we keep a reference to the feature so we can draw the clickable line when - // a click handler is added. This is only supported on GeoJSON features. - // - // see addSource() - - const lineEntry = this.lines.find((entry) => entry.id === sourceId); - - if (lineEntry) { - lineEntry.layer = line; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after addLayer'); - } - - resolve(); - } catch (ex) { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer() Error : ' + ex); - } - reject(ex); - } - }); // end of Promise() - } // end of addLineLayer - - // ------------------------------------------------------------------------------------- - /** * Add a point to a line * @@ -3159,7 +2910,6 @@ export class Mapbox extends MapboxCommon implements MapboxApi { * * @todo this does not update the invisible clickable overlay. */ - public addLinePoint(id: string, lnglat, nativeMapView?): Promise { return new Promise((resolve, reject) => { try { @@ -3223,242 +2973,7 @@ export class Mapbox extends MapboxCommon implements MapboxApi { reject(ex); } }); - } // end of addLinePoint() - - // ------------------------------------------------------------------------------------- - - /** - * add a circle Layer - * - * Draw a circle based on a Mapbox style. - * - * Mapbox Native Android layers do not support click handlers. Unfortunately, we cannot use - * the same Annotations approach that we do for lines to get a click handler because - * circles drawn by the Annotations plugin do not support stops so there's no making them - * smaller as we zoom out. Instead, we have our own click handler (see handleClickEvent() above) - * to determine when a click has occured inside a circle. - * - * In order to support the click handler an additional circle-radius property, in meters, must - * be included. - * - * { - * "id": someid, - * "type": 'circle', - * "radius-meters": 500, // FIXME: radius in meters used for in-circle click detection. - * "source": { - * "type": 'geojson', - * "data": { - * "type": "Feature", - * "geometry": { - * "type": "Point", - * "coordinates": [ lng, lat ] - * } - * } - * }, - * "paint": { - * "circle-radius": { - * "stops": [ - * [0, 0], - * [20, 8000 ] - * ], - * "base": 2 - * }, - * 'circle-opacity': 0.05, - * 'circle-color': '#ed6498', - * 'circle-stroke-width': 2, - * 'circle-stroke-color': '#ed6498' - * } - * - * 'source' may also refer to a vector source - * - * 'source': { - * 'type': 'vector', - * 'url': '' - * } - * - * or it may be a string referring to the id of an already added source as in - * - * 'source': '' - * - * @param {object} style a Mapbox style describing the circle draw. - * @param {object} nativeMap view. - */ - - private addCircleLayer(style, nativeMapViewInstance?): Promise { - return new Promise((resolve, reject) => { - try { - if (style.type !== 'circle') { - reject('Non circle style passed to addCircle()'); - } - - // the source may be of type geojson or it may be the id of a source added by addSource(). - - let sourceId = null; - - if (typeof style.source != 'string') { - sourceId = style.id + '_source'; - - this.addSource(sourceId, style.source); - } else { - sourceId = style.source; - } - - const circle = new com.mapbox.mapboxsdk.style.layers.CircleLayer(style.id, sourceId); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after CircleLayer'); - } - - // This took ages to figure out. - // - // Interpolate takes as arguments a function the calculates the interpolation, - // a function that returns a set of values, - // and a variable number of stop arguments (or possibly others). - // - // It was not clear how to specify the variable number of arguments. Listing them out in a comma - // separated fashion would result in: - // - // Error in mapbox.addCircle: Error: java.lang.Exception: Failed resolving method interpolate on class com.mapbox.mapboxsdk.style.expressions.Expression - // - // It looks like you just pass the variable arguments as a simple array. It seems to work but I have not been able - // to find any documentation to support this. I figured this out over hours of trial and error. - // - // https://docs.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate - - let circleProperties = []; - - // some defaults if there's no paint property to the style - - if (typeof style.paint == 'undefined') { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircle(): paint is undefined'); - } - - circleProperties = [ - com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor('red'), - com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius( - com.mapbox.mapboxsdk.style.expressions.Expression.interpolate( - com.mapbox.mapboxsdk.style.expressions.Expression.exponential(new java.lang.Float(2.0)), - com.mapbox.mapboxsdk.style.expressions.Expression.zoom(), - [ - com.mapbox.mapboxsdk.style.expressions.Expression.stop(new java.lang.Float(0), new java.lang.Float(0)), - com.mapbox.mapboxsdk.style.expressions.Expression.stop(new java.lang.Float(20), new java.lang.Float(6000)), - ] - ) - ), - com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleBlur(new java.lang.Float(0.2)), - ]; - } else { - // color - - if (style.paint['circle-color']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor(style.paint['circle-color'])); - } - - // opacity - - if (style.paint['circle-opacity']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleOpacity(new java.lang.Float(style.paint['circle-opacity']))); - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircle(): after opactiy'); - } - - // stroke width - - if (style.paint['circle-stroke-width']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeWidth(new java.lang.Float(style.paint['circle-stroke-width']))); - } - - // stroke color - - if (style.paint['circle-stroke-color']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeColor(style.paint['circle-stroke-color'])); - } - - if (!style.paint['circle-radius']) { - // some default so something will show up on the map. - - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius(new java.lang.Float(30))); - } else { - // we have two options for a radius. We might have a fixed float or an expression - - if (typeof style.paint['circle-radius'] == 'number') { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius(new java.lang.Float(style.paint['circle-radius']))); - } else { - if (!style.paint['circle-radius'].stops) { - reject('No radius or stops provided to addCircleLayer.'); - } - - // for the moment we assume we have a set of stops and a base. - - const stopArgs = []; - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, "Mapbox:addCircleLayer(): adding '" + style.paint['circle-radius'].stops.length + "' stops"); - } - - for (let i = 0; i < style.paint['circle-radius'].stops.length; i++) { - const stop = style.paint['circle-radius'].stops[i]; - stopArgs.push(com.mapbox.mapboxsdk.style.expressions.Expression.stop(new java.lang.Float(stop[0]), new java.lang.Float(stop[1]))); - } - - let base = 2; - - if (style.paint['circle-radius'].stops.base) { - base = style.paint['circle-radius'].stops.base; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): pushing circleRadius with base:', base); - } - - circleProperties.push( - com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius( - com.mapbox.mapboxsdk.style.expressions.Expression.interpolate( - com.mapbox.mapboxsdk.style.expressions.Expression.exponential(new java.lang.Float(base)), - com.mapbox.mapboxsdk.style.expressions.Expression.zoom(), - stopArgs - ) - ) - ); - } // end of else we do not have a numeric circle radius - } // end of else we have a circle-radius - } - - circle.setProperties(circleProperties); - - this._mapboxMapInstance.getStyle().addLayer(circle); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): added circle layer'); - } - - // In support for clickable GeoJSON features. - - const circleEntry = this.circles.find((entry) => entry.id === sourceId); - - if (circleEntry) { - circleEntry.radius = style['circle-radius']; - circleEntry.layer = circle; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after addLayer'); - } - - resolve(); - } catch (ex) { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Error in mapbox.addCircleLayer: ' + ex); - } - reject(ex); - } - }); - } // end of addCircleLayer() - - // ---------------------------------------- + } addGeoJsonClustered(options: AddGeoJsonClusteredOptions, nativeMap?): Promise { return new Promise((resolve, reject) => { @@ -4264,7 +3779,7 @@ export class Mapbox extends MapboxCommon implements MapboxApi { export class Layer implements LayerCommon { public id: string; - private instance: any; + private instance: com.mapbox.mapboxsdk.style.layers.Layer; constructor(instance: any) { this.instance = instance; @@ -4282,6 +3797,10 @@ export class Layer implements LayerCommon { public hide(): void { this.instance.setProperties([new com.mapbox.mapboxsdk.style.layers.PropertyValue('visibility', 'none')]); } + + public getNativeInstance() { + return this.instance; + } } // END diff --git a/src/mapbox.common.ts b/src/mapbox.common.ts index 2a7f09b..18bdedc 100755 --- a/src/mapbox.common.ts +++ b/src/mapbox.common.ts @@ -487,6 +487,7 @@ export interface LayerCommon { visibility(): boolean; show(): void; hide(): void; + getNativeInstance(): any; } // ------------------------------------------------------------ diff --git a/src/mapbox.ios.ts b/src/mapbox.ios.ts index 6f81034..ee537de 100755 --- a/src/mapbox.ios.ts +++ b/src/mapbox.ios.ts @@ -39,6 +39,7 @@ import { import { GeoUtils } from './geo.utils'; import { iOSNativeHelper } from '@nativescript/core/utils'; import { getImage } from '@nativescript/core/http'; +import { LayerFactory } from './layers/layer-factory'; // Export the enums for devs not using TS @@ -2216,25 +2217,21 @@ export class Mapbox extends MapboxCommon implements MapboxApi { * * @link https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers */ - public addLayer(style, nativeMapView?): Promise { - let retval; + public async addLayer(style, nativeMapView?): Promise { + const theMap: MGLMapView = nativeMapView || this._mapboxViewInstance; - switch (style.type) { - case 'line': - retval = this.addLineLayer(style, nativeMapView); - break; - - case 'circle': - retval = this.addCircleLayer(style, nativeMapView); - break; - - default: - retval = Promise.reject("Mapbox:addLayer() Unsupported geometry type '" + style.type + "'"); - - break; + let source = null; + if (typeof style.source != 'string') { + this.addSource(style.id + '_source', style.source); + source = theMap.style.sourceWithIdentifier(style.id + '_source'); + } else { + source = style.source; } - return retval; + const layer = await LayerFactory.createLayer(style, source); + theMap.style.addLayer(layer.getNativeInstance()); + + return Promise.resolve(); } /** @@ -2266,183 +2263,7 @@ export class Mapbox extends MapboxCommon implements MapboxApi { if (Trace.isEnabled()) { CLog(CLogTypes.info, 'Mapbox:removeLayer(): after removing layer ' + id); } - } // end of removeLayer() - - // ------------------------------------------------------------------------------------- - - /** - * add a line layer - * - * Draws a line layer based on a mapbox-gl-js Mapbox Style. - * - * What sucks about this is that there is apparently no facility to add an event listener to a layer. - * - * The idea for this method is to make sharing code between mapbox-gl-js Typescript web applications - * and {N} native applications easier. - * - * For the moment this method only supports a source type of 'geojson'. - * - * Example style for a line: - * - * { - * 'id': someid, - * 'type': 'line', - * 'source': { - * 'type': 'geojson', - * 'data': { - * "type": "Feature", - * "geometry": { - * "type": "LineString", - * "coordinates": [ [ lng, lat ], [ lng, lat ], ..... ] - * } - * } - * } - * }, - * 'layout': { - * 'line-cap': 'round', - * 'line-join': 'round' - * }, - * 'paint': { - * 'line-color': '#ed6498', - * 'line-width': 5, - * 'line-opacity': .8, - * 'line-dash-array': [ 1, 1, 1, ..] - * } - * - * Do not call this method directly. Use addLayer(). - * - * 'source' may also refer to a vector source - * - * 'source': { - * 'type': 'vector', - * 'url': '' - * } - * - * or it may be a string referring to the id of an already added source as in - * - * 'source': '' - * - * To enable catching of click events on a line, when a click handler is added - * to a line (using the onMapEvent() method above), the Annotations plugin is used to - * draw an invisible clickable line over the line layer. Sadly, the Annotations - * plugin does not support all the nice styling options of the line Layer so we're - * pushed into this compromise of drawing two lines, one for it's styling and the - * other for it's click handling. - * - * @param {object} style - a style following the Mapbox style specification. - * @param {any} nativeMapView - native map view (com.mapbox.mapboxsdk.maps.MapView) - * - * @return {Promise} - * - * @see addLineAnnotation() - * @see onMapEvent() - * - * @link https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers - * @link https://docs.mapbox.com/android/api/map-sdk/7.1.2/com/mapbox/mapboxsdk/maps/Style.html#addSource-com.mapbox.mapboxsdk.style.sources.Source- - * @link https://docs.nativescript.org/core-concepts/android-runtime/marshalling/java-to-js#array-of-primitive-types - */ - - private addLineLayer(style, nativeMapViewInstance?): Promise { - return new Promise((resolve, reject) => { - try { - const theMap: MGLMapView = nativeMapViewInstance || this._mapboxViewInstance; - - if (style.type !== 'line') { - reject('Non line style passed to addLineLayer()'); - } - - // the source may be of type geojson or it may be the id of a source added by addSource(). - - let sourceId = null; - - if (typeof style.source != 'string') { - sourceId = style.id + '_source'; - this.addSource(sourceId, style.source); - } else { - sourceId = style.source; - } - - const layer = MGLLineStyleLayer.alloc().initWithIdentifierSource(style.id, theMap.style.sourceWithIdentifier(sourceId)); - - // color - - let color = 'black'; - - if (style.paint && style.paint['line-color']) { - color = style.paint['line-color']; - } - - layer.lineColor = NSExpression.expressionForConstantValue(new Color(color).ios); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after line color'); - } - - // line width - - let width = 5; - - if (style.paint && style.paint['line-width']) { - width = style.paint['line-width']; - } - - layer.lineWidth = NSExpression.expressionForConstantValue(width); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after line width'); - } - - let opacity = 1; - - if (style.paint && style.paint['line-opacity']) { - opacity = style.paint['line-opacity']; - } - - layer.lineOpacity = NSExpression.expressionForConstantValue(opacity); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after opacity'); - } - - // line dash array - - if (style.paint && style.paint['line-dash-array']) { - const dashArray = []; - - for (let i = 0; i < style.paint['line-dash-array'].length; i++) { - dashArray[i] = NSExpression.expressionForConstantValue(style.paint['line-dash-array'][i]); - } - - layer.lineDashPattern = NSExpression.expressionForConstantValue(dashArray); - } - - theMap.style.addLayer(layer); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): after adding layer.'); - } - - const lineEntry = this.lines.find((entry) => entry.id === sourceId); - - if (lineEntry) { - lineEntry.layer = layer; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer(): pushed line:', this.lines[this.lines.length - 1]); - } - - resolve(); - } catch (ex) { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addLineLayer() Error : ' + ex); - } - reject(ex); - } - }); // end of Promise() - } // end of addLineLayer - - // ------------------------------------------------------------------------------------- + } /** * Add a point to a line @@ -2519,208 +2340,7 @@ export class Mapbox extends MapboxCommon implements MapboxApi { reject(ex); } }); - } // end of addLinePoint() - - // ------------------------------------------------------------------------------------- - - /** - * add a circle Layer - * - * Draw a circle based on a Mapbox style. - * - * Mapbox Native Android layers do not support click handlers. Unfortunately, we cannot use - * the same Annotations approach that we do for lines to get a click handler because - * circles drawn by the Annotations plugin do not support stops so there's no making them - * smaller as we zoom out. Instead, we have our own click handler (see handleClickEvent() above) - * to determine when a click has occured inside a circle. - * - * In order to support the click handler an additional circle-radius property, in meters, must - * be included. - * - * { - * "id": someid, - * "type": 'circle', - * "radius-meters": 500, // FIXME: radius in meters used for in-circle click detection. - * "source": { - * "type": 'geojson', - * "data": { - * "type": "Feature", - * "geometry": { - * "type": "Point", - * "coordinates": [ lng, lat ] - * } - * } - * }, - * "paint": { - * "circle-radius": { - * "stops": [ - * [0, 0], - * [20, 8000 ] - * ], - * "base": 2 - * }, - * 'circle-opacity': 0.05, - * 'circle-color': '#ed6498', - * 'circle-stroke-width': 2, - * 'circle-stroke-color': '#ed6498' - * } - * - * @param {object} style a Mapbox style describing the circle draw. - * @param {object} nativeMap view. - * - * @link https://github.com/NativeScript/NativeScript/issues/6971 - * @link https://stackoverflow.com/questions/54890753/how-to-call-objective-c-nsexpression-format-from-nativescript/54913932#54913932 - */ - - private addCircleLayer(style, nativeMapViewInstance?): Promise { - return new Promise((resolve, reject) => { - try { - const theMap: MGLMapView = nativeMapViewInstance || this._mapboxViewInstance; - - if (style.type !== 'circle') { - reject('Non circle style passed to addCircleLayer()'); - } - - // the source may be of type geojson, vector, or it may be the id of a source added by addSource(). - - let sourceId = null; - - if (typeof style.source != 'string') { - sourceId = style.id + '_source'; - - this.addSource(sourceId, style.source); - } else { - sourceId = style.source; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after adding source'); - } - - const layer = MGLCircleStyleLayer.alloc().initWithIdentifierSource(style.id, theMap.style.sourceWithIdentifier(sourceId)); - - // color - - let color = 'black'; - - if (style.paint && style.paint['circle-color']) { - color = style.paint['circle-color']; - } - - layer.circleColor = NSExpression.expressionForConstantValue(new Color(color).ios); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after circle color'); - } - - // stroke color - - let strokeColor = 'black'; - - if (style.paint && style.paint['circle-stroke-color']) { - strokeColor = style.paint['circle-stroke-color']; - } - - layer.circleStrokeColor = NSExpression.expressionForConstantValue(new Color(strokeColor).ios); - - // stroke width - - let width = 5; - - if (style.paint && style.paint['circle-stroke-width']) { - width = style.paint['circle-stroke-width']; - } - - layer.circleStrokeWidth = NSExpression.expressionForConstantValue(width); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after stroke width'); - } - - let opacity = 1; - - if (style.paint && style.paint['circle-opacity']) { - opacity = style.paint['circe-opacity']; - } - - layer.circleOpacity = NSExpression.expressionForConstantValue(opacity); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after opacity'); - } - - // we have two options for a radius. We might have a fixed float or an expression - - const radius = 15; - - if (style.paint && typeof style.paint['circle-radius'] == 'number') { - layer.circleRadius = NSExpression.expressionForConstantValue(style.paint['circle-radius']); - } else { - if (!style.paint['circle-radius'].stops) { - reject('No radius or stops provided to addCircleLayer.'); - return; - } - - // for the moment we assume we have a set of stops and a base. - - const stopKeys = []; - const stopValues = []; - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, "Mapbox:addCircleLayer(): adding '" + style.paint['circle-radius'].stops.length + "' stops"); - } - - // this took forever to figure out. There is some NativeScript bug and the type definition for - // NSExpression is not clear. We have to create an NSDictionary with two arrays. The first array is the - // values and the second one is the keys. They have to be in ascending order. Once an NSDictionary is created - // we have to create an NSArray with that. - - for (let i = 0; i < style.paint['circle-radius'].stops.length; i++) { - stopKeys[i] = style.paint['circle-radius'].stops[i][0]; - stopValues[i] = style.paint['circle-radius'].stops[i][1]; - } - - let base = 2; - - if (style.paint['circle-radius'].stops.base) { - base = style.paint['circle-radius'].stops.base; - } - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): pushing circleRadius with base:', base); - } - - const nsDict = new (NSDictionary as any)(stopValues, stopKeys); - - const nsArray = NSArray.arrayWithArray([nsDict]); - - layer.circleRadius = NSExpression.expressionWithFormatArgumentArray("mgl_interpolate:withCurveType:parameters:stops:( $zoomLevel, 'exponential', 2, %@)", nsArray); - - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer(): after setting circle radius expression'); - } - } - - theMap.style.addLayer(layer); - - const circleEntry = this.circles.find((entry) => entry.id === sourceId); - - if (circleEntry) { - circleEntry.radius = style['circle-radius']; - circleEntry.layer = layer; - } - - resolve(); - } catch (ex) { - if (Trace.isEnabled()) { - CLog(CLogTypes.info, 'Mapbox:addCircleLayer() Error : ' + ex); - } - reject(ex); - } - }); // end of Promise() - } // end of addCircleLayer() - - // --------------------------------------------------------------------- + } addGeoJsonClustered(options: AddGeoJsonClusteredOptions, nativeMapViewInstance?): Promise { throw new Error('Method not implemented.'); @@ -3561,5 +3181,9 @@ export class Layer implements LayerCommon { hide(): void { this.instance.visible = false; } + + getNativeInstance() { + return this.instance; + } } \ No newline at end of file From 7a9bd3846300f6155f5e87d6d54ad76977b5fbf9 Mon Sep 17 00:00:00 2001 From: Chris Vietor Date: Thu, 3 Dec 2020 20:47:57 +0100 Subject: [PATCH 2/4] feat: more paint and layout properties for LineLayer supported --- src/layers/layer-factory.android.ts | 42 ++++++++++++++++++++++++----- src/layers/layer-factory.ios.ts | 36 ++++++++++++++++++++----- 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/src/layers/layer-factory.android.ts b/src/layers/layer-factory.android.ts index fefba9f..fe1a631 100644 --- a/src/layers/layer-factory.android.ts +++ b/src/layers/layer-factory.android.ts @@ -52,17 +52,17 @@ export class LayerFactory { line-cap ✓ line-color ✓ line-dasharray ✓ - line-gap-width + line-gap-width ✓ line-gradient line-join ✓ - line-miter-limit - line-offset + line-miter-limit ✓ + line-offset ✓ line-opacity ✓ line-pattern - line-round-limit + line-round-limit ✓ line-sort-key - line-translate - line-translate-anchor + line-translate ✓ + line-translate-anchor ✓ line-width ✓ visibility */ @@ -105,6 +105,10 @@ export class LayerFactory { lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineDasharray(dashArray)); } + if (propertiesObject['line-gap-width']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineGapWidth(new java.lang.Float(propertiesObject['line-gap-width']))); + } + if (propertiesObject['line-join']) { let property; @@ -125,10 +129,36 @@ export class LayerFactory { lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineJoin(property)); } + if (propertiesObject['line-miter-limit']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineMiterLimit(new java.lang.Float(propertiesObject['line-miter-limit']))); + } + + if (propertiesObject['line-offset']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOffset(new java.lang.Float(propertiesObject['line-offset']))); + } + if (propertiesObject['line-opacity']) { lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOpacity(new java.lang.Float(propertiesObject['line-opacity']))); } + if (propertiesObject['line-round-limit']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineRoundLimit(new java.lang.Float(propertiesObject['line-round-limit']))); + } + + if (propertiesObject['line-translate']) { + const dashArray = Array.create('java.lang.Float', propertiesObject['line-translate'].length); + + for (let i = 0; i < propertiesObject['line-translate'].length; i++) { + dashArray[i] = new java.lang.Float(propertiesObject['line-translate'][i]); + } + + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineTranslate(dashArray)); + } + + if (propertiesObject['line-translate-anchor']) { + lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineTranslateAnchor(propertiesObject['line-translate-anchor'])); + } + if (propertiesObject['line-width']) { lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth(new java.lang.Float(propertiesObject['line-width']))); } diff --git a/src/layers/layer-factory.ios.ts b/src/layers/layer-factory.ios.ts index 4d066b5..0522ecb 100644 --- a/src/layers/layer-factory.ios.ts +++ b/src/layers/layer-factory.ios.ts @@ -58,17 +58,17 @@ export class LayerFactory { line-cap ✓ line-color ✓ line-dasharray ✓ - line-gap-width + line-gap-width ✓ line-gradient line-join ✓ - line-miter-limit - line-offset + line-miter-limit ✓ + line-offset ✓ line-opacity ✓ line-pattern - line-round-limit + line-round-limit ✓ line-sort-key - line-translate - line-translate-anchor + line-translate ✓ + line-translate-anchor ✓ line-width ✓ visibility */ @@ -89,14 +89,38 @@ export class LayerFactory { lineProperties['lineDashPattern'] = NSExpression.expressionForConstantValue(propertiesObject['line-dash-array']); } + if (propertiesObject['line-gap-width']) { + lineProperties['lineGapWidth'] = NSExpression.expressionForConstantValue(propertiesObject['line-gap-width']); + } + if (propertiesObject['line-join']) { lineProperties['lineJoin'] = NSExpression.expressionForConstantValue(propertiesObject['line-join']); } + if (propertiesObject['line-miter-limit']) { + lineProperties['lineMiterLimit'] = NSExpression.expressionForConstantValue(propertiesObject['line-miter-limit']); + } + + if (propertiesObject['line-offset']) { + lineProperties['lineOffset'] = NSExpression.expressionForConstantValue(propertiesObject['line-offset']); + } + if (propertiesObject['line-opacity']) { lineProperties['lineOpacity'] = NSExpression.expressionForConstantValue(propertiesObject['line-opacity']); } + if (propertiesObject['line-round-limit']) { + lineProperties['lineRoundLimit'] = NSExpression.expressionForConstantValue(propertiesObject['line-round-limit']); + } + + if (propertiesObject['line-translate']) { + lineProperties['lineTranslation'] = NSExpression.expressionForConstantValue(propertiesObject['line-translate']); + } + + if (propertiesObject['line-translate-anchor']) { + lineProperties['lineTranslationAnchor'] = NSExpression.expressionForConstantValue(propertiesObject['line-translate-anchor']); + } + if (propertiesObject['line-width']) { lineProperties['lineWidth'] = NSExpression.expressionForConstantValue(propertiesObject['line-width']); } From d104637516cced10515ad0ce6b93c2f06016572d Mon Sep 17 00:00:00 2001 From: Chris Vietor Date: Fri, 4 Dec 2020 21:41:29 +0100 Subject: [PATCH 3/4] feat: added addImage + SymbolLayer support --- .../src/main/res/drawable-hdpi/bee.png | Bin 0 -> 20950 bytes .../src/main/res/drawable-ldpi/bee.png | Bin 0 -> 9517 bytes .../src/main/res/drawable-mdpi/bee.png | Bin 0 -> 13315 bytes .../src/main/res/drawable-xhdpi/bee.png | Bin 0 -> 29192 bytes .../src/main/res/drawable-xxhdpi/bee.png | Bin 0 -> 47605 bytes .../src/main/res/drawable-xxxhdpi/bee.png | Bin 0 -> 71284 bytes .../bee.imageset/Contents.json | 23 + .../Assets.xcassets/bee.imageset/bee@1x.png | Bin 0 -> 19093 bytes .../Assets.xcassets/bee.imageset/bee@2x.png | Bin 0 -> 42928 bytes .../Assets.xcassets/bee.imageset/bee@3x.png | Bin 0 -> 71458 bytes demo/app/assets/pizza-slice.png | Bin 0 -> 2198 bytes demo/app/main-view-model.ts | 226 +-- demo/app/sample-data.ts | 1326 +++++++++++++++++ src/layers/layer-factory.android.ts | 94 ++ src/layers/layer-factory.ios.ts | 94 ++ src/mapbox.android.ts | 32 +- src/mapbox.common.ts | 6 +- src/mapbox.ios.ts | 31 + 18 files changed, 1740 insertions(+), 92 deletions(-) create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-hdpi/bee.png create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-ldpi/bee.png create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-mdpi/bee.png create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/bee.png create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/bee.png create mode 100644 demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/bee.png create mode 100644 demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/Contents.json create mode 100644 demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@1x.png create mode 100644 demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@2x.png create mode 100644 demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@3x.png create mode 100644 demo/app/assets/pizza-slice.png create mode 100644 demo/app/sample-data.ts diff --git a/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/bee.png b/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb658d24cebaefbad0bb6519617bba5f70b03e6 GIT binary patch literal 20950 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 T)^pBZAaI%fah_B~bc*>O@$RAP literal 0 HcmV?d00001 diff --git a/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/bee.png b/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..a5668270c796a8ca53480e3c7f9498a7d089749c GIT binary patch literal 9517 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 literal 0 HcmV?d00001 diff --git a/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/bee.png b/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7f4b729ec577b33f621c2ba3ba45fbaaac9d35 GIT binary patch literal 29192 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 E5AQ_X(EtDd literal 0 HcmV?d00001 diff --git a/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/bee.png b/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..cda64eb6ebca7710e59dffa3f7969e3b76f79a7c GIT binary patch literal 47605 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 LUp+_7^5Oph?u`Pc literal 0 HcmV?d00001 diff --git a/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/Contents.json b/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/Contents.json new file mode 100644 index 0000000..ccc9613 --- /dev/null +++ b/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "bee@1x.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "bee@2x.png" + }, + { + "idiom" : "universal", + "scale" : "3x", + "filename" : "bee@3x.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@1x.png b/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..b52fe1e9935c991a2ac28c9ea74fc6e2273db72c GIT binary patch literal 19093 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 literal 0 HcmV?d00001 diff --git a/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@2x.png b/demo/app/App_Resources/iOS/Assets.xcassets/bee.imageset/bee@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..def94b7ff3b09d64c0f8e62640829a9960e86085 GIT binary patch literal 42928 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 Y2jNT*8%9Cxt^fc407*qoM6N<$f(o`Qw*UYD literal 0 HcmV?d00001 diff --git a/demo/app/main-view-model.ts b/demo/app/main-view-model.ts index cbcd2fa..087f8b8 100644 --- a/demo/app/main-view-model.ts +++ b/demo/app/main-view-model.ts @@ -4,6 +4,7 @@ import { ContentView } from '@nativescript/core/ui/content-view'; import { AlertOptions, alert } from '@nativescript/core/ui/dialogs'; import { DownloadProgress, LatLng, MapStyle, Mapbox, MapboxMarker, MapboxView, OfflineRegion, Viewport } from '@nativescript-community/ui-mapbox'; import { SETTINGS } from '../../mapbox_config'; +import { AmsterdamHoneyBees } from './sample-data'; const isIOS = platform.Device.os === platform.platformNames.ios; @@ -416,104 +417,151 @@ export class HelloWorldModel extends Observable { ); } - public doAddLayerAndSource(): void { + public async doAddLayerAndSource(): Promise { try { - - this.mapbox - .addLayer({ - id: 'circle-with-source-object', - type: 'circle', - source: { - type: 'geojson', - data: { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [4.823684692382513, 52.3701494345567], + this.mapbox + .addLayer({ + id: 'circle-with-source-object', + type: 'circle', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [4.823684692382513, 52.3701494345567], + }, }, }, - }, - paint: { - 'circle-blur': 0.2, - 'circle-radius': 10, - 'circle-opacity': 0.65, - 'circle-color': '#ed6498', - 'circle-stroke-width': 4, - 'circle-stroke-color': '#3b0619', - 'circle-stroke-opacity': 0.75, - }, - }) - .then(() => console.log('circle-with-source-object added')); + paint: { + 'circle-blur': 0.2, + 'circle-radius': 10, + 'circle-opacity': 0.65, + 'circle-color': '#ed6498', + 'circle-stroke-width': 4, + 'circle-stroke-color': '#3b0619', + 'circle-stroke-opacity': 0.75, + }, + }) + .then(() => console.log('circle-with-source-object added')); - this.mapbox - .addLayer({ - id: 'line-with-source-object', - type: 'line', - source: { - type: 'geojson', - data: { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [ - [4.80926513671875, 52.27403984182285], - [4.9383544921875, 52.30931825948968], - ], + this.mapbox + .addLayer({ + id: 'line-with-source-object', + type: 'line', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'LineString', + coordinates: [ + [4.80926513671875, 52.27403984182285], + [4.9383544921875, 52.30931825948968], + ], + }, }, }, - }, - layout: { - 'line-cap': 'round', - 'line-join': 'round', - 'line-blur': 0.2, - }, - paint: { - 'line-color': '#ab111b', - 'line-width': 5, - 'line-opacity': 0.7, - 'line-dash-array': [1, 1, 1, 1], - }, - }) - .then(() => console.log('line-with-source-object added')); - - this.mapbox.addLayer({ - id: 'fill-with-source-object', - type: 'fill', - source: { - type: 'geojson', - data: { - type: 'Feature', - properties: {}, - geometry: { - type: 'Polygon', - coordinates: [ - [ - [4.864797592163086, 52.346980527061895], - [4.923677444458008, 52.346980527061895], - [4.923677444458008, 52.36742431104005], - [4.864797592163086, 52.36742431104005], - [4.864797592163086, 52.346980527061895], + layout: { + 'line-cap': 'round', + 'line-join': 'round', + 'line-blur': 0.2, + }, + paint: { + 'line-color': '#ab111b', + 'line-width': 5, + 'line-opacity': 0.7, + 'line-dash-array': [1, 1, 1, 1], + }, + }) + .then(() => console.log('line-with-source-object added')); + + this.mapbox + .addLayer({ + id: 'fill-with-source-object', + type: 'fill', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Polygon', + coordinates: [ + [ + [4.864797592163086, 52.346980527061895], + [4.923677444458008, 52.346980527061895], + [4.923677444458008, 52.36742431104005], + [4.864797592163086, 52.36742431104005], + [4.864797592163086, 52.346980527061895], + ], ], - ], + }, }, }, - }, - paint: { - 'fill-antialias': 'true', - 'fill-color': '#5dbcd2', - 'fill-opacity': 0.65, - 'fill-outline-color': '#23474f', - 'fill-translate': [0, 0], - 'fill-translate-anchor': 'map', - }, - }) - .then(() => console.log('fill-with-source-object added')); + paint: { + 'fill-antialias': 'true', + 'fill-color': '#5dbcd2', + 'fill-opacity': 0.65, + 'fill-outline-color': '#23474f', + 'fill-translate': [0, 0], + 'fill-translate-anchor': 'map', + }, + }) + .then(() => console.log('fill-with-source-object added')); + + await this.mapbox.addImage('bee', 'res://bee'); + await this.mapbox.addImage('pizza', '~/assets/pizza-slice.png'); + + this.mapbox + .addLayer({ + id: 'symbol-with-source-object', + type: 'symbol', + source: { + type: 'geojson', + data: AmsterdamHoneyBees, + }, + layout: { + 'text-field': 'Honey', + 'icon-size': 0.2, + 'icon-image': 'bee', + }, + paint: { + 'text-color': '#d6c80d', + }, + }) + .then(() => console.log('symbol-with-source-object added')); + this.mapbox + .addLayer({ + id: 'symbol-with-source-object2', + type: 'symbol', + source: { + type: 'geojson', + data: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [4.8916793, 52.3690958] + }, + }, + }, + layout: { + 'text-field': 'New York Pizza', + 'icon-size': 0.99, + 'icon-image': 'pizza', + 'icon-rotate': 180 + }, + paint: { + 'text-color': '#d6c80d' + } + }) + .then(() => console.log('symbol-with-source-object2 added')); } catch (error) { console.error('Mapbox doAddLayerAndSource error :', error); - } } @@ -522,14 +570,18 @@ export class HelloWorldModel extends Observable { this.mapbox.removeLayer('circle-with-source-object'), this.mapbox.removeLayer('line-with-source-object'), this.mapbox.removeLayer('fill-with-source-object'), + this.mapbox.removeLayer('symbol-with-source-object'), + this.mapbox.removeLayer('symbol-with-source-object2'), ]).then(() => { return Promise.all([ this.mapbox.removeSource('custom-collection-1'), this.mapbox.removeSource('line-with-source-object_source'), this.mapbox.removeSource('circle-with-source-object_source'), this.mapbox.removeSource('fill-with-source-object_source'), + this.mapbox.removeSource('symbol-with-source-object_source'), + this.mapbox.removeSource('symbol-with-source-object2_source'), ]); - }) + }); } public doListOfflineRegions(): void { diff --git a/demo/app/sample-data.ts b/demo/app/sample-data.ts new file mode 100644 index 0000000..b97af23 --- /dev/null +++ b/demo/app/sample-data.ts @@ -0,0 +1,1326 @@ +// https://maps.amsterdam.nl/open_geodata/geojson.php?KAARTLAAG=BIJEN_HONING&THEMA=honingbijen +export const AmsterdamHoneyBees = { + type: 'FeatureCollection', + features: [ + { + id: 1, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9010179, 52.3672606], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 2, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9048221, 52.3603751], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 3, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9163749, 52.3646094], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 4, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8776009, 52.3850829], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 5, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.867975, 52.3829924], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 6, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8494909, 52.3750922], + }, + properties: { + Aantal_kasten: '6 kasten/volken', + Aantal_volken: 6, + }, + }, + { + id: 7, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.856107, 52.3707816], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 8, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8364642, 52.3349578], + }, + properties: { + Aantal_kasten: '14 kasten/volken', + Aantal_volken: 14, + }, + }, + { + id: 9, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8653562, 52.3559004], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 10, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8746002, 52.3358542], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 11, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8934019, 52.3232886], + }, + properties: { + Aantal_kasten: '20 kasten/volken', + Aantal_volken: 20, + }, + }, + { + id: 12, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9737952, 52.356671], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 13, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9117448, 52.3966033], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 14, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8809421, 52.4218222], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 15, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9024789, 52.4015814], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 16, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9085209, 52.3999259], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 17, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9204948, 52.3832938], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 18, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.96194, 52.3867728], + }, + properties: { + Aantal_kasten: '30 kasten/volken', + Aantal_volken: 30, + }, + }, + { + id: 19, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9537408, 52.3027083], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 20, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9263799, 52.4050109], + }, + properties: { + Aantal_kasten: '21 kasten/volken', + Aantal_volken: 21, + }, + }, + { + id: 21, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9002278, 52.3763625], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 22, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7839649, 52.3600546], + }, + properties: { + Aantal_kasten: '10 kasten/volken', + Aantal_volken: 10, + }, + }, + { + id: 23, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7717068, 52.37909], + }, + properties: { + Aantal_kasten: '6 + 2 kleintjes kasten/volken', + Aantal_volken: 6, + }, + }, + { + id: 24, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7774508, 52.3747145], + }, + properties: { + Aantal_kasten: '120 kasten/volken', + Aantal_volken: 120, + }, + }, + { + id: 25, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8660991, 52.3876387], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 26, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8745811, 52.3362662], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 27, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9155509, 52.332997], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 28, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9283621, 52.349713], + }, + properties: { + Aantal_kasten: '14 kasten/volken', + Aantal_volken: 14, + }, + }, + { + id: 29, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8926599, 52.3491713], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 30, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.835212, 52.36015], + }, + properties: { + Aantal_kasten: '6 kasten/volken', + Aantal_volken: 6, + }, + }, + { + id: 31, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9282272, 52.3698508], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 32, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.882292, 52.3639723], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 33, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8893688, 52.3652274], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 34, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8641961, 52.3871199], + }, + properties: { + Aantal_kasten: '7 kasten/volken', + Aantal_volken: 7, + }, + }, + { + id: 35, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9882948, 52.3274924], + }, + properties: { + Aantal_kasten: '7 kasten/volken', + Aantal_volken: 7, + }, + }, + { + id: 36, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [5.0004714, 52.3100449], + }, + properties: { + Aantal_kasten: '9 kasten/volken', + Aantal_volken: 9, + }, + }, + { + id: 37, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8689811, 52.3861357], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 38, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.90747, 52.3666655], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 39, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9721858, 52.30568], + }, + properties: { + Aantal_kasten: '10 kasten/volken', + Aantal_volken: 10, + }, + }, + { + id: 40, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9865601, 52.3767401], + }, + properties: { + Aantal_kasten: '20 kasten/volken', + Aantal_volken: 20, + }, + }, + { + id: 41, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9546549, 52.385121], + }, + properties: { + Aantal_kasten: '20 kasten/volken', + Aantal_volken: 20, + }, + }, + { + id: 42, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9291279, 52.3521697], + }, + properties: { + Aantal_kasten: '12 kasten/volken', + Aantal_volken: 12, + }, + }, + { + id: 43, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8509052, 52.3844267], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 44, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.853317, 52.3768355], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 45, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9120848, 52.3813063], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 46, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8544719, 52.3871123], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 47, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8347218, 52.3865363], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 48, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7484991, 52.4018141], + }, + properties: { + Aantal_kasten: '8 kasten/volken', + Aantal_volken: 8, + }, + }, + { + id: 49, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.804312, 52.3902365], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 50, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7738869, 52.4573485], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 51, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8158739, 52.3410765], + }, + properties: { + Aantal_kasten: '16 kasten/volken', + Aantal_volken: 16, + }, + }, + { + id: 52, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7819369, 52.3730933], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 53, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.879236, 52.2909628], + }, + properties: { + Aantal_kasten: '60 kasten/volken', + Aantal_volken: 60, + }, + }, + { + id: 54, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.894851, 52.3222777], + }, + properties: { + Aantal_kasten: '12 kasten/volken', + Aantal_volken: 12, + }, + }, + { + id: 55, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8288591, 52.3353507], + }, + properties: { + Aantal_kasten: '20 kasten/volken', + Aantal_volken: 20, + }, + }, + { + id: 56, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8438089, 52.3690077], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 57, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8569062, 52.3247305], + }, + properties: { + Aantal_kasten: '14 kasten/volken', + Aantal_volken: 14, + }, + }, + { + id: 58, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8098271, 52.3310286], + }, + properties: { + Aantal_kasten: '6 kasten/volken', + Aantal_volken: 6, + }, + }, + { + id: 59, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8657029, 52.3600928], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 60, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8946459, 52.354077], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 61, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8641941, 52.3685614], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 62, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8457968, 52.3684851], + }, + properties: { + Aantal_kasten: '7 kasten/volken', + Aantal_volken: 7, + }, + }, + { + id: 63, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9641612, 52.289231], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 64, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9014819, 52.3718268], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 65, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.885443, 52.3683364], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 66, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8263352, 52.230641], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 67, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8489888, 52.3074042], + }, + properties: { + Aantal_kasten: '8 kasten/volken', + Aantal_volken: 8, + }, + }, + { + id: 68, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8631132, 52.285958], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 69, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8513992, 52.2765395], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 70, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9567439, 52.3484427], + }, + properties: { + Aantal_kasten: '6 kasten/volken', + Aantal_volken: 6, + }, + }, + { + id: 71, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9011691, 52.3427512], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 72, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.799711, 52.3382308], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 73, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8801119, 52.3414237], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 74, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8516538, 52.3650061], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 75, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9386041, 52.3403899], + }, + properties: { + Aantal_kasten: '12 kasten/volken', + Aantal_volken: 12, + }, + }, + { + id: 76, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [5.002105, 52.3453528], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 77, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8753312, 52.3373419], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 78, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [5.0035899, 52.3093611], + }, + properties: { + Aantal_kasten: '10 kasten/volken', + Aantal_volken: 10, + }, + }, + { + id: 79, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9734938, 52.3590323], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 80, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.824722, 52.3144156], + }, + properties: { + Aantal_kasten: '13 kasten/volken', + Aantal_volken: 13, + }, + }, + { + id: 81, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8180339, 52.2880599], + }, + properties: { + Aantal_kasten: '7 kasten/volken', + Aantal_volken: 7, + }, + }, + { + id: 82, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9185321, 52.3702971], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 83, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.894417, 52.3415915], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 84, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8568342, 52.3627478], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 85, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9655869, 52.3723342], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 86, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9010689, 52.3142897], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 87, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8765762, 52.3043067], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 88, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9022062, 52.2961089], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 89, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8686979, 52.28077], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 90, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8963411, 52.3374487], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 91, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8268912, 52.3459288], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 92, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8146732, 52.3454596], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 93, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8931701, 52.4181143], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 94, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9190972, 52.3654296], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 95, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7684829, 52.3332984], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 96, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9608238, 52.403504], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 97, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7850239, 52.3750235], + }, + properties: { + Aantal_kasten: '14 kasten/volken', + Aantal_volken: 14, + }, + }, + { + id: 98, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7503688, 52.4107939], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 99, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.93309, 52.4010626], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 100, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9910438, 52.3594672], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 101, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8477981, 52.3866698], + }, + properties: { + Aantal_kasten: '1 kast/volk', + Aantal_volken: 1, + }, + }, + { + id: 103, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9024501, 52.3604203], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 104, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.7835102, 52.3818468], + }, + properties: { + Aantal_kasten: '4 kasten/volken', + Aantal_volken: 4, + }, + }, + { + id: 105, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8708097, 52.3790758], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 106, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8974498, 52.3369675], + }, + properties: { + Aantal_kasten: '12 kasten/volken', + Aantal_volken: 12, + }, + }, + { + id: 107, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9544788, 52.3527634], + }, + properties: { + Aantal_kasten: '3 kasten/volken', + Aantal_volken: 3, + }, + }, + { + id: 108, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9041179, 52.3703574], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 109, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.8959532, 52.3692302], + }, + properties: { + Aantal_kasten: '2 kasten/volken', + Aantal_volken: 2, + }, + }, + { + id: 110, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9369886, 52.3183256], + }, + properties: { + Aantal_kasten: '5 kasten/volken', + Aantal_volken: 5, + }, + }, + { + id: 111, + type: 'Feature', + geometry: { + type: 'Point', + coordinates: [4.9920711, 52.3259769], + }, + properties: { + Aantal_kasten: '8 kasten/volken', + Aantal_volken: 8, + }, + }, + ], +}; diff --git a/src/layers/layer-factory.android.ts b/src/layers/layer-factory.android.ts index fe1a631..5a5993f 100644 --- a/src/layers/layer-factory.android.ts +++ b/src/layers/layer-factory.android.ts @@ -18,6 +18,9 @@ export class LayerFactory { case 'fill': nativeLayer = new com.mapbox.mapboxsdk.style.layers.FillLayer(style.id, sourceId).withProperties(layerProperties); break; + case 'symbol': + nativeLayer = new com.mapbox.mapboxsdk.style.layers.SymbolLayer(style.id, sourceId).withProperties(layerProperties); + break; default: throw new Error(`Unknown layer type: ${style.type}`); } @@ -35,6 +38,8 @@ export class LayerFactory { return this.parsePropertiesForCircleLayer(propertiesObject); case 'fill': return this.parsePropertiesForFillLayer(propertiesObject); + case 'symbol': + return this.parsePropertiesForSymbolLayer(propertiesObject); default: throw new Error(`Unknown layer type: ${layerType}`); } @@ -307,6 +312,95 @@ export class LayerFactory { return fillProperties; } + private static parsePropertiesForSymbolLayer(propertiesObject) { + const symbolProperties = []; + + if (!propertiesObject) { + return symbolProperties; + } + + /* + icon-allow-overlap + icon-anchor + icon-color + icon-halo-blur + icon-halo-color + icon-halo-width + icon-ignore-placement + icon-image ✓ + icon-keep-upright + icon-offset + icon-opacity + icon-optional + icon-padding + icon-pitch-alignment + icon-rotate ✓ + icon-rotation-alignment + icon-size ✓ + icon-text-fit + icon-text-fit-padding + icon-translate + icon-translate-anchor + symbol-avoid-edges + symbol-placement + symbol-sort-key + symbol-spacing + symbol-z-order + text-allow-overlap + text-anchor + text-color ✓ + text-field ✓ + text-font + text-halo-blur + text-halo-color + text-halo-width + text-ignore-placement + text-justify + text-keep-upright + text-letter-spacing + text-line-height + text-max-angle + text-max-width + text-offset + text-opacity + text-optional + text-padding + text-pitch-alignment + text-radial-offset + text-rotate + text-rotation-alignment + text-size + text-transform + text-translate + text-translate-anchor + text-variable-anchor + text-writing-mode + visibility + */ + + if (propertiesObject['icon-image']) { + symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage(propertiesObject['icon-image'])); + } + + if (propertiesObject['icon-rotate']) { + symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconRotate(new java.lang.Float(propertiesObject['icon-rotate']))); + } + + if (propertiesObject['icon-size']) { + symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize(new java.lang.Float(propertiesObject['icon-size']))); + } + + if (propertiesObject['text-color']) { + symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor(propertiesObject['text-color'])); + } + + if (propertiesObject['text-field']) { + symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField(propertiesObject['text-field'])); + } + + return symbolProperties; + } + private static parseLayoutProperties(layoutObject) { const layoutProperties = []; diff --git a/src/layers/layer-factory.ios.ts b/src/layers/layer-factory.ios.ts index 0522ecb..68c7af1 100644 --- a/src/layers/layer-factory.ios.ts +++ b/src/layers/layer-factory.ios.ts @@ -16,6 +16,9 @@ export class LayerFactory { case 'fill': nativeLayer = MGLFillStyleLayer.alloc().initWithIdentifierSource(style.id, source); break; + case 'symbol': + nativeLayer = MGLSymbolStyleLayer.alloc().initWithIdentifierSource(style.id, source); + break; default: throw new Error(`Unknown layer type: ${style.type}`); } @@ -41,6 +44,8 @@ export class LayerFactory { return this.parsePropertiesForCircleLayer(propertiesObject); case 'fill': return this.parsePropertiesForFillLayer(propertiesObject); + case 'symbol': + return this.parsePropertiesForSymbolLayer(propertiesObject); default: throw new Error(`Unknown layer type: ${layerType}`); } @@ -234,4 +239,93 @@ export class LayerFactory { return fillProperties; } + + private static parsePropertiesForSymbolLayer(propertiesObject) { + const fillProperties = {}; + + if (!propertiesObject) { + return fillProperties; + } + + /* + icon-allow-overlap + icon-anchor + icon-color + icon-halo-blur + icon-halo-color + icon-halo-width + icon-ignore-placement + icon-image ✓ + icon-keep-upright + icon-offset + icon-opacity + icon-optional + icon-padding + icon-pitch-alignment + icon-rotate ✓ + icon-rotation-alignment + icon-size ✓ + icon-text-fit + icon-text-fit-padding + icon-translate + icon-translate-anchor + symbol-avoid-edges + symbol-placement + symbol-sort-key + symbol-spacing + symbol-z-order + text-allow-overlap + text-anchor + text-color ✓ + text-field ✓ + text-font + text-halo-blur + text-halo-color + text-halo-width + text-ignore-placement + text-justify + text-keep-upright + text-letter-spacing + text-line-height + text-max-angle + text-max-width + text-offset + text-opacity + text-optional + text-padding + text-pitch-alignment + text-radial-offset + text-rotate + text-rotation-alignment + text-size + text-transform + text-translate + text-translate-anchor + text-variable-anchor + text-writing-mode + visibility + */ + + if (propertiesObject['icon-image']) { + fillProperties['iconImageName'] = NSExpression.expressionForConstantValue(propertiesObject['icon-image']); + } + + if (propertiesObject['icon-rotate']) { + fillProperties['iconRotation'] = NSExpression.expressionForConstantValue(propertiesObject['icon-rotate']); + } + + if (propertiesObject['icon-size']) { + fillProperties['iconScale'] = NSExpression.expressionForConstantValue(propertiesObject['icon-size']); + } + + if (propertiesObject['text-color']) { + fillProperties['textColor'] = NSExpression.expressionForConstantValue(new Color(propertiesObject['text-color']).ios); + } + + if (propertiesObject['text-field']) { + fillProperties['text'] = NSExpression.expressionForConstantValue(propertiesObject['text-field']); + } + + return fillProperties; + } } diff --git a/src/mapbox.android.ts b/src/mapbox.android.ts index c13ed9f..d79ebe9 100755 --- a/src/mapbox.android.ts +++ b/src/mapbox.android.ts @@ -5,7 +5,7 @@ */ import { request } from '@nativescript-community/perms'; -import { AndroidApplication, Application, Color, File, Trace, Utils, knownFolders, path } from '@nativescript/core'; +import { AndroidApplication, Application, Color, File, Trace, Utils, knownFolders, path, ImageSource } from '@nativescript/core'; import { getImage } from '@nativescript/core/http'; import { FilterParser } from './filter/filter-parser.android'; import { GeoUtils } from './geo.utils'; @@ -1595,6 +1595,36 @@ export class Mapbox extends MapboxCommon implements MapboxApi { // ------------------------------------------------------------------------------ + async addImage(imageId: string, image: string, nativeMap?: any): Promise { + return new Promise((resolve, reject) => { + const theMap = nativeMap || this._mapboxMapInstance; + + if (!theMap) { + reject('No map has been loaded'); + return; + } + + if (!image.startsWith("res://")) { + image = path.join(knownFolders.currentApp().path, image.replace('~/', '')); + } + + const img = ImageSource.fromFileOrResourceSync(image); + + try { + theMap.getStyle().addImage(imageId, img.android); + resolve(); + } catch (ex) { + reject("Error during addImage: " + ex); + + if (Trace.isEnabled()) { + CLog(CLogTypes.info, 'Error in mapbox.addImage: ' + ex); + } + throw ex; + } + + }); + } + async addMarkers(markers: MapboxMarker[], nativeMap?: any) { try { this._addMarkers(markers, this._mapboxViewInstance); diff --git a/src/mapbox.common.ts b/src/mapbox.common.ts index 6f5a642..5690964 100755 --- a/src/mapbox.common.ts +++ b/src/mapbox.common.ts @@ -1,4 +1,4 @@ -import { Color, ContentView, Property, Trace, booleanConverter } from '@nativescript/core'; +import { Color, ContentView, Property, Trace, booleanConverter, ImageSource } from '@nativescript/core'; export const MapboxTraceCategory = 'NativescriptMapbox'; export enum CLogTypes { @@ -631,9 +631,7 @@ export interface MapboxApi { getLayers(nativeMap?: any): Promise; - // addSource(options: AddSourceOptions): Promise; - - // addExtrusion(options: AddExtrusionOptions): Promise; + addImage(imageId: string, image: string, nativeMap?: any): Promise; } // ------------------------------------------------------------ diff --git a/src/mapbox.ios.ts b/src/mapbox.ios.ts index e6ddb50..cef1ea7 100755 --- a/src/mapbox.ios.ts +++ b/src/mapbox.ios.ts @@ -1103,6 +1103,37 @@ export class Mapbox extends MapboxCommon implements MapboxApi { // -------------------------------------------- + async addImage(imageId: string, image: string, nativeMap?: any): Promise { + return new Promise((resolve, reject) => { + const theMap: MGLMapView = nativeMap || this._mapboxViewInstance; + + if (!theMap) { + reject('No map has been loaded'); + return; + } + + if (!image.startsWith("res://")) { + const appPath = knownFolders.currentApp().path; + image = appPath + '/' + image.replace('~/', ''); + } + + const img = ImageSource.fromFileOrResourceSync(image); + + try { + theMap.style.setImageForName(img.ios, imageId); + resolve(); + } catch (ex) { + reject("Error during addImage: " + ex); + + if (Trace.isEnabled()) { + CLog(CLogTypes.info, 'Error in mapbox.addImage: ' + ex); + } + throw ex; + } + + }); + } + addMarkers(markers: MapboxMarker[], nativeMap?: any): Promise { return new Promise((resolve, reject) => { try { From 21fc3faf47c78973ec44721c366b3be321354e58 Mon Sep 17 00:00:00 2001 From: Chris Vietor Date: Fri, 4 Dec 2020 21:53:22 +0100 Subject: [PATCH 4/4] chore: fixed minor code issues --- src/layers/layer-factory.android.ts | 133 ++++++++++++---------------- src/layers/layer-factory.ios.ts | 4 +- 2 files changed, 58 insertions(+), 79 deletions(-) diff --git a/src/layers/layer-factory.android.ts b/src/layers/layer-factory.android.ts index 5a5993f..89c324c 100644 --- a/src/layers/layer-factory.android.ts +++ b/src/layers/layer-factory.android.ts @@ -1,8 +1,8 @@ import { Layer } from '../mapbox.android'; import { LayerCommon } from '../mapbox.common'; -export class LayerFactory { - static createLayer(style, source): Promise { +export class LayerFactory { + static async createLayer(style, source): Promise { const layerProperties = this.parseProperties(style.type, Object.assign(style.paint, style.layout)); // TODO: handle defaults const sourceId = source.getId(); @@ -27,7 +27,7 @@ export class LayerFactory { var layer = new Layer(nativeLayer); - return Promise.resolve(layer); + return layer; } private static parseProperties(layerType, propertiesObject) { @@ -71,9 +71,11 @@ export class LayerFactory { line-width ✓ visibility */ + const PropertyFactory = com.mapbox.mapboxsdk.style.layers.PropertyFactory; + const Property = com.mapbox.mapboxsdk.style.layers.Property; if (propertiesObject['line-blur']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineBlur(new java.lang.Float(propertiesObject['line-blur']))); + lineProperties.push(PropertyFactory.lineBlur(new java.lang.Float(propertiesObject['line-blur']))); } if (propertiesObject['line-cap']) { @@ -81,23 +83,23 @@ export class LayerFactory { switch (propertiesObject['line-cap']) { case 'round': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_ROUND; + property = Property.LINE_CAP_ROUND; break; case 'square': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_SQUARE; + property = Property.LINE_CAP_SQUARE; break; case 'butt': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_BUTT; + property = Property.LINE_CAP_BUTT; break; default: throw new Error('Unknown line-cap value'); } - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(property)); + lineProperties.push(PropertyFactory.lineCap(property)); } if (propertiesObject['line-color']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineColor(propertiesObject['line-color'])); + lineProperties.push(PropertyFactory.lineColor(propertiesObject['line-color'])); } if (propertiesObject['line-dash-array']) { @@ -107,11 +109,11 @@ export class LayerFactory { dashArray[i] = new java.lang.Float(propertiesObject['line-dash-array'][i]); } - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineDasharray(dashArray)); + lineProperties.push(PropertyFactory.lineDasharray(dashArray)); } if (propertiesObject['line-gap-width']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineGapWidth(new java.lang.Float(propertiesObject['line-gap-width']))); + lineProperties.push(PropertyFactory.lineGapWidth(new java.lang.Float(propertiesObject['line-gap-width']))); } if (propertiesObject['line-join']) { @@ -119,35 +121,35 @@ export class LayerFactory { switch (propertiesObject['line-join']) { case 'bevel': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_BEVEL; + property = Property.LINE_JOIN_BEVEL; break; case 'miter': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_MITER; + property = Property.LINE_JOIN_MITER; break; case 'round': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_JOIN_ROUND; + property = Property.LINE_JOIN_ROUND; break; default: throw new Error('Unknown line-join value'); } - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineJoin(property)); + lineProperties.push(PropertyFactory.lineJoin(property)); } if (propertiesObject['line-miter-limit']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineMiterLimit(new java.lang.Float(propertiesObject['line-miter-limit']))); + lineProperties.push(PropertyFactory.lineMiterLimit(new java.lang.Float(propertiesObject['line-miter-limit']))); } if (propertiesObject['line-offset']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOffset(new java.lang.Float(propertiesObject['line-offset']))); + lineProperties.push(PropertyFactory.lineOffset(new java.lang.Float(propertiesObject['line-offset']))); } if (propertiesObject['line-opacity']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineOpacity(new java.lang.Float(propertiesObject['line-opacity']))); + lineProperties.push(PropertyFactory.lineOpacity(new java.lang.Float(propertiesObject['line-opacity']))); } if (propertiesObject['line-round-limit']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineRoundLimit(new java.lang.Float(propertiesObject['line-round-limit']))); + lineProperties.push(PropertyFactory.lineRoundLimit(new java.lang.Float(propertiesObject['line-round-limit']))); } if (propertiesObject['line-translate']) { @@ -157,15 +159,15 @@ export class LayerFactory { dashArray[i] = new java.lang.Float(propertiesObject['line-translate'][i]); } - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineTranslate(dashArray)); + lineProperties.push(PropertyFactory.lineTranslate(dashArray)); } if (propertiesObject['line-translate-anchor']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineTranslateAnchor(propertiesObject['line-translate-anchor'])); + lineProperties.push(PropertyFactory.lineTranslateAnchor(propertiesObject['line-translate-anchor'])); } if (propertiesObject['line-width']) { - lineProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth(new java.lang.Float(propertiesObject['line-width']))); + lineProperties.push(PropertyFactory.lineWidth(new java.lang.Float(propertiesObject['line-width']))); } return lineProperties; @@ -194,23 +196,26 @@ export class LayerFactory { visibility */ + const PropertyFactory = com.mapbox.mapboxsdk.style.layers.PropertyFactory; + const Expression = com.mapbox.mapboxsdk.style.expressions.Expression; + if (propertiesObject['circle-blur']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleBlur(new java.lang.Float(propertiesObject['circle-blur']))); + circleProperties.push(PropertyFactory.circleBlur(new java.lang.Float(propertiesObject['circle-blur']))); } if (propertiesObject['circle-color']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor(propertiesObject['circle-color'])); + circleProperties.push(PropertyFactory.circleColor(propertiesObject['circle-color'])); } if (propertiesObject['circle-opacity']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleOpacity(new java.lang.Float(propertiesObject['circle-opacity']))); + circleProperties.push(PropertyFactory.circleOpacity(new java.lang.Float(propertiesObject['circle-opacity']))); } if (propertiesObject['circle-radius']) { // we have two options for a radius. We might have a fixed float or an expression if (typeof propertiesObject['circle-radius'] == 'number') { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius(new java.lang.Float(propertiesObject['circle-radius']))); + circleProperties.push(PropertyFactory.circleRadius(new java.lang.Float(propertiesObject['circle-radius']))); } else { if (!propertiesObject['circle-radius'].stops) { throw new Error('No radius or stops provided to addCircleLayer.'); @@ -220,7 +225,7 @@ export class LayerFactory { for (let i = 0; i < propertiesObject['circle-radius'].stops.length; i++) { const stop = propertiesObject['circle-radius'].stops[i]; - stopArgs.push(com.mapbox.mapboxsdk.style.expressions.Expression.stop(new java.lang.Float(stop[0]), new java.lang.Float(stop[1]))); + stopArgs.push(Expression.stop(new java.lang.Float(stop[0]), new java.lang.Float(stop[1]))); } let base = 2; @@ -230,10 +235,10 @@ export class LayerFactory { } circleProperties.push( - com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius( - com.mapbox.mapboxsdk.style.expressions.Expression.interpolate( - com.mapbox.mapboxsdk.style.expressions.Expression.exponential(new java.lang.Float(base)), - com.mapbox.mapboxsdk.style.expressions.Expression.zoom(), + PropertyFactory.circleRadius( + Expression.interpolate( + Expression.exponential(new java.lang.Float(base)), + Expression.zoom(), stopArgs ) ) @@ -242,15 +247,15 @@ export class LayerFactory { } if (propertiesObject['circle-stroke-color']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeColor(propertiesObject['circle-stroke-color'])); + circleProperties.push(PropertyFactory.circleStrokeColor(propertiesObject['circle-stroke-color'])); } if (propertiesObject['circle-stroke-opacity']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeOpacity(new java.lang.Float(propertiesObject['circle-stroke-opacity']))); + circleProperties.push(PropertyFactory.circleStrokeOpacity(new java.lang.Float(propertiesObject['circle-stroke-opacity']))); } if (propertiesObject['circle-stroke-width']) { - circleProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleStrokeWidth(new java.lang.Float(propertiesObject['circle-stroke-width']))); + circleProperties.push(PropertyFactory.circleStrokeWidth(new java.lang.Float(propertiesObject['circle-stroke-width']))); } return circleProperties; @@ -275,25 +280,27 @@ export class LayerFactory { visibility */ + const PropertyFactory = com.mapbox.mapboxsdk.style.layers.PropertyFactory; + if (propertiesObject['fill-color']) { - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillColor(propertiesObject['fill-color'])); + fillProperties.push(PropertyFactory.fillColor(propertiesObject['fill-color'])); } if (propertiesObject['fill-opacity']) { - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOpacity(new java.lang.Float(propertiesObject['fill-opacity']))); + fillProperties.push(PropertyFactory.fillOpacity(new java.lang.Float(propertiesObject['fill-opacity']))); } if (propertiesObject['fill-antialias']) { - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillAntialias(new java.lang.Boolean(propertiesObject['fill-antialias']))); + fillProperties.push(PropertyFactory.fillAntialias(new java.lang.Boolean(propertiesObject['fill-antialias']))); } if (propertiesObject['fill-outline-color']) { - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOutlineColor(propertiesObject['fill-outline-color'])); + fillProperties.push(PropertyFactory.fillOutlineColor(propertiesObject['fill-outline-color'])); } if (propertiesObject['fill-pattern']) { // TODO: can be string or string[] - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillPattern(propertiesObject['fill-pattern'])); + fillProperties.push(PropertyFactory.fillPattern(propertiesObject['fill-pattern'])); } if (propertiesObject['fill-translate']) { @@ -302,11 +309,11 @@ export class LayerFactory { for (let i = 0; i < propertiesObject['fill-translate'].length; i++) { fillTranslateArray[i] = new java.lang.Float(propertiesObject['fill-translate'][i]); } - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillTranslate(fillTranslateArray)); + fillProperties.push(PropertyFactory.fillTranslate(fillTranslateArray)); } if (propertiesObject['fill-translate-anchor']) { - fillProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillTranslateAnchor(propertiesObject['fill-translate-anchor'])); + fillProperties.push(PropertyFactory.fillTranslateAnchor(propertiesObject['fill-translate-anchor'])); } return fillProperties; @@ -378,56 +385,28 @@ export class LayerFactory { visibility */ + const PropertyFactory = com.mapbox.mapboxsdk.style.layers.PropertyFactory; + if (propertiesObject['icon-image']) { - symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage(propertiesObject['icon-image'])); - } + symbolProperties.push(PropertyFactory.iconImage(propertiesObject['icon-image'])); + } if (propertiesObject['icon-rotate']) { - symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconRotate(new java.lang.Float(propertiesObject['icon-rotate']))); + symbolProperties.push(PropertyFactory.iconRotate(new java.lang.Float(propertiesObject['icon-rotate']))); } if (propertiesObject['icon-size']) { - symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize(new java.lang.Float(propertiesObject['icon-size']))); + symbolProperties.push(PropertyFactory.iconSize(new java.lang.Float(propertiesObject['icon-size']))); } if (propertiesObject['text-color']) { - symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor(propertiesObject['text-color'])); + symbolProperties.push(PropertyFactory.textColor(propertiesObject['text-color'])); } if (propertiesObject['text-field']) { - symbolProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField(propertiesObject['text-field'])); + symbolProperties.push(PropertyFactory.textField(propertiesObject['text-field'])); } return symbolProperties; } - - private static parseLayoutProperties(layoutObject) { - const layoutProperties = []; - - if (!layoutObject) { - return layoutProperties; - } - - if (layoutObject['line-cap']) { - let property; - - switch (layoutObject['line-cap']) { - case 'round': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_ROUND; - break; - case 'square': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_SQUARE; - break; - case 'butt': - property = com.mapbox.mapboxsdk.style.layers.Property.LINE_CAP_BUTT; - break; - default: - throw new Error('Unknown line-cap value'); - } - - layoutProperties.push(com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineCap(property)); - } - - return layoutProperties; - } } diff --git a/src/layers/layer-factory.ios.ts b/src/layers/layer-factory.ios.ts index 68c7af1..cf3d972 100644 --- a/src/layers/layer-factory.ios.ts +++ b/src/layers/layer-factory.ios.ts @@ -4,7 +4,7 @@ import { LayerCommon } from '../mapbox.common'; import { Layer } from '../mapbox.ios'; export class LayerFactory { - static createLayer(style, source): Promise { + static async createLayer(style, source): Promise { let nativeLayer; switch (style.type) { case 'line': @@ -33,7 +33,7 @@ export class LayerFactory { var layer = new Layer(nativeLayer); - return Promise.resolve(layer); + return layer; } private static parseProperties(layerType, propertiesObject) {