Skip to content

Commit 5bcaaa2

Browse files
author
farfromrefug
committed
fix: support MultiPoint point geometry in onVectorTileClicked
1 parent 9722aa3 commit 5bcaaa2

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

src/ui-carto/layers/vector.android.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ export abstract class BaseVectorTileLayer<T extends com.carto.layers.VectorTileL
9999
const feature = info.getFeature();
100100
const geometry = feature.getGeometry();
101101
let position = info.getClickPos();
102-
let featurePos = geometry.getCenterPos();
102+
const geoPosIndex = info.getFeaturePosIndex();
103+
let featurePos = geoPosIndex !== -1 && geometry instanceof com.carto.geometry.MultiPointGeometry ? geometry.getGeometry(geoPosIndex).getCenterPos() : geometry.getCenterPos();
103104
let projection: com.carto.projections.Projection;
104105
const dataSourceProjection = this.getNative().getDataSource().getProjection();
105106
if (this.listenerProjection) {
@@ -112,6 +113,7 @@ export abstract class BaseVectorTileLayer<T extends com.carto.layers.VectorTileL
112113
id: info.getFeatureId(),
113114
layer: info.getFeatureLayerName(),
114115
_nativeGeometry: geometry,
116+
geoPosIndex,
115117
get geometry() {
116118
if (!this._parsedGeometry) {
117119
const writer = getGeojsonWriter();
@@ -140,6 +142,7 @@ export abstract class BaseVectorTileLayer<T extends com.carto.layers.VectorTileL
140142
featureData: geoFeature.properties,
141143
featureLayerName: geoFeature.layer,
142144
featureGeometry: geometry,
145+
featureGeometryPosIndex: geoPosIndex,
143146
featurePosition: fromNativeMapPos(featurePos),
144147
position: fromNativeMapPos(position)
145148
}) || false

src/ui-carto/layers/vector.ios.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ export class NTVectorTileEventListenerImpl extends AKVectorTileEventListener {
9898
const feature = info.getFeature();
9999
const geometry = feature.getGeometry();
100100
let position = info.getClickPos();
101-
let featurePos = geometry.getCenterPos();
101+
const geoPosIndex = info.getFeaturePosIndex();
102+
let featurePos = geoPosIndex !== -1 && geometry instanceof com.carto.geometry.MultiPointGeometry ? geometry.getGeometry(geoPosIndex).getCenterPos() : geometry.getCenterPos();
102103

103104
let projection: NTProjection;
104105
const dataSourceProjection = this._layer.get().getNative().getDataSource().getProjection();

src/ui-carto/typings/carto.android.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11592,6 +11592,7 @@ declare namespace com {
1159211592
public swigCMemOwn: boolean;
1159311593
public getClickType(): com.carto.ui.ClickType;
1159411594
public getClickPos(): com.carto.core.MapPos;
11595+
public getFeaturePosIndex(): number;
1159511596
public static getCPtr(param0: com.carto.ui.VectorTileClickInfo): number;
1159611597
public finalize(): void;
1159711598
public constructor(param0: number, param1: boolean);

src/ui-carto/typings/carto.ios.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6924,6 +6924,8 @@ declare class NTVectorTileClickInfo extends NSObject {
69246924
getClickInfo(): NTClickInfo;
69256925

69266926
getClickPos(): NTMapPos;
6927+
6928+
getFeaturePosIndex(): number;
69276929

69286930
getClickType(): NTClickType;
69296931

0 commit comments

Comments
 (0)