diff --git a/packages/component/src/marker.ts b/packages/component/src/marker.ts index 92ca8a682e..15c79c6ef2 100644 --- a/packages/component/src/marker.ts +++ b/packages/component/src/marker.ts @@ -274,6 +274,10 @@ export default class Marker extends EventEmitter { element.appendChild(svg); } DOM.addClass(element, 'l7-marker'); + Object.keys(this.markerOption.style || {}).forEach((key: string) => { + // @ts-ignore + element?.style[key] = this.markerOption?.style[key]; + }); element.addEventListener('click', (e: MouseEvent) => { this.onMapClick(e); }); diff --git a/packages/core/src/services/component/IMarkerService.ts b/packages/core/src/services/component/IMarkerService.ts index 327a14eccf..f31fa270e5 100644 --- a/packages/core/src/services/component/IMarkerService.ts +++ b/packages/core/src/services/component/IMarkerService.ts @@ -17,6 +17,7 @@ export interface IMarkerOption { offsets: number[]; draggable: boolean; extData?: any; + style?: CSSStyleDeclaration; } export interface IMarker { addTo(scene: Container): void; diff --git a/packages/core/src/services/map/IMapService.ts b/packages/core/src/services/map/IMapService.ts index 53806419d7..19ffc72ddc 100644 --- a/packages/core/src/services/map/IMapService.ts +++ b/packages/core/src/services/map/IMapService.ts @@ -148,6 +148,8 @@ export interface IMapConfig { attributionControl?: boolean; + offsetCoordinate?: boolean; + [key: string]: any; } diff --git a/packages/maps/src/map/map.ts b/packages/maps/src/map/map.ts index 7e780f2ae0..7d1bcbf47a 100644 --- a/packages/maps/src/map/map.ts +++ b/packages/maps/src/map/map.ts @@ -311,6 +311,7 @@ export default class L7MapService implements IMapService { private handleCameraChanged = () => { const { lat, lng } = this.map.getCenter(); + const { offsetCoordinate = false } = this.config; // resync this.viewport.syncWithMapCamera({ @@ -324,7 +325,10 @@ export default class L7MapService implements IMapService { cameraHeight: 0, }); // set coordinate system - if (this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD) { + if ( + this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD && + offsetCoordinate + ) { this.coordinateSystemService.setCoordinateSystem( CoordinateSystem.LNGLAT_OFFSET, );