From 07aedd38648df20d1326045a27a7ef13d3f76096 Mon Sep 17 00:00:00 2001 From: yanxiong Date: Wed, 8 May 2024 09:23:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20LayerPopup=20follow?= =?UTF-8?q?Cursor=20=E9=BB=98=E8=AE=A4=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/demos/components/index.ts | 1 + examples/demos/components/layerPopup.ts | 62 ++++++++++++++++++++++ packages/component/src/popup/layerPopup.ts | 3 +- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 examples/demos/components/layerPopup.ts diff --git a/examples/demos/components/index.ts b/examples/demos/components/index.ts index 733dd7c4a7..ec619f5787 100644 --- a/examples/demos/components/index.ts +++ b/examples/demos/components/index.ts @@ -1,3 +1,4 @@ export { MapRender as control } from './control'; +export { MapRender as layerPopup } from './layerPopup'; export { MapRender as marker } from './marker'; export { MapRender as swipe } from './swipe'; diff --git a/examples/demos/components/layerPopup.ts b/examples/demos/components/layerPopup.ts new file mode 100644 index 0000000000..b33202b427 --- /dev/null +++ b/examples/demos/components/layerPopup.ts @@ -0,0 +1,62 @@ +import { LayerPopup, PointLayer, Scene } from '@antv/l7'; +import * as allMap from '@antv/l7-maps'; +import type { RenderDemoOptions } from '../../types'; + +export function MapRender(options: RenderDemoOptions) { + const scene = new Scene({ + id: 'map', + renderer: options.renderer, + map: new allMap.GaodeMap({ + style: 'light', + center: [121.435159, 31.256971], + zoom: 14.89, + minZoom: 10, + }), + }); + scene.on('loaded', () => { + fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + const pointLayer = new PointLayer({ + name: 'layer', + }) + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude', + }, + }) + .shape('name', [ + 'circle', + 'triangle', + 'square', + 'pentagon', + 'hexagon', + 'octogon', + 'hexagram', + 'rhombus', + 'vesica', + ]) + .size('unit_price', [10, 25]) + .color('name', ['#5B8FF9', '#5CCEA1', '#5D7092', '#F6BD16', '#E86452']) + .style({ + opacity: 1, + strokeWidth: 2, + }); + + scene.addLayer(pointLayer); + + const layerPopup = new LayerPopup({ + items: [ + { + layer: 'layer', + fields: ['name', 'count'], + }, + ], + }); + + scene.addPopup(layerPopup); + }); + }); +} diff --git a/packages/component/src/popup/layerPopup.ts b/packages/component/src/popup/layerPopup.ts index 57636f8366..2208cff81b 100644 --- a/packages/component/src/popup/layerPopup.ts +++ b/packages/component/src/popup/layerPopup.ts @@ -88,8 +88,7 @@ export default class LayerPopup extends Popup { } protected getDefault(option: Partial): ILayerPopupOption { - const isHoverTrigger = option.trigger === 'hover'; - + const isHoverTrigger = option.trigger !== 'click'; return { ...super.getDefault(option), trigger: 'hover',