@maptiler/geocoding-control 0.0.32 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -6
- package/dist/leaflet.js +2076 -687
- package/dist/leaflet.umd.cjs +22 -1
- package/dist/lib/LeafletGeocodingControl.d.ts +6 -2
- package/dist/lib/MaplibreglGeocodingControl.d.ts +10 -3
- package/dist/lib/leafletMapController.d.ts +1 -1
- package/dist/lib/maplibreglMapController.d.ts +7 -0
- package/dist/lib/types.d.ts +23 -3
- package/dist/main.d.ts +1 -1
- package/dist/maplibregl.js +2093 -672
- package/dist/maplibregl.umd.cjs +22 -1
- package/dist/style.css +1 -1
- package/package.json +7 -4
- package/src/lib/GeocodingControl.svelte +74 -20
- package/src/lib/LeafletGeocodingControl.ts +23 -4
- package/src/lib/MaplibreglGeocodingControl.ts +32 -8
- package/src/lib/ReverseGeocodingIcon.svelte +12 -0
- package/src/lib/leafletMapController.ts +119 -20
- package/src/lib/maplibreglMapController.ts +291 -0
- package/src/lib/types.ts +26 -3
- package/dist/lib/maplibreMapController.d.ts +0 -4
- package/src/lib/BullseyeIcon.svelte +0 -12
- package/src/lib/maplibreMapController.ts +0 -149
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import type MapLibreGL from "maplibre-gl";
|
|
2
|
-
import type {
|
|
3
|
-
FitBoundsOptions,
|
|
4
|
-
MapMouseEvent,
|
|
5
|
-
LngLat,
|
|
6
|
-
Map,
|
|
7
|
-
Marker,
|
|
8
|
-
FlyToOptions,
|
|
9
|
-
} from "maplibre-gl";
|
|
10
|
-
import MarkerIcon from "./MarkerIcon.svelte";
|
|
11
|
-
import type { Feature, MapController, Proximity } from "./types";
|
|
12
|
-
|
|
13
|
-
export function createMaplibreMapController(
|
|
14
|
-
map: Map,
|
|
15
|
-
maplibregl?: typeof MapLibreGL | undefined,
|
|
16
|
-
marker: boolean | maplibregl.MarkerOptions = true,
|
|
17
|
-
showResultMarkers: boolean | maplibregl.MarkerOptions = true,
|
|
18
|
-
flyToOptions: FlyToOptions = {},
|
|
19
|
-
fitBoundsOptions: FitBoundsOptions = {}
|
|
20
|
-
) {
|
|
21
|
-
let proximityChangeHandler: ((proximity: Proximity) => void) | undefined;
|
|
22
|
-
|
|
23
|
-
let mapClickHandler: ((coordinates: [number, number]) => void) | undefined;
|
|
24
|
-
|
|
25
|
-
let prevProximity: Proximity = undefined;
|
|
26
|
-
|
|
27
|
-
let markers: Marker[] = [];
|
|
28
|
-
|
|
29
|
-
let selectedMarker: maplibregl.Marker | undefined;
|
|
30
|
-
|
|
31
|
-
const handleMapClick = (e: MapMouseEvent) => {
|
|
32
|
-
mapClickHandler?.([e.lngLat.lng, e.lngLat.lat]);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const handleMoveEnd = () => {
|
|
36
|
-
let c: LngLat;
|
|
37
|
-
|
|
38
|
-
const proximity =
|
|
39
|
-
map.getZoom() > 9
|
|
40
|
-
? ([(c = map.getCenter().wrap()).lng, c.lat] as [number, number])
|
|
41
|
-
: undefined;
|
|
42
|
-
|
|
43
|
-
if (prevProximity !== proximity) {
|
|
44
|
-
prevProximity = proximity;
|
|
45
|
-
|
|
46
|
-
proximityChangeHandler?.(proximity);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const ctrl: MapController = {
|
|
51
|
-
setProximityChangeHandler(
|
|
52
|
-
_proximityChangeHandler: ((proximity: Proximity) => void) | undefined
|
|
53
|
-
): void {
|
|
54
|
-
if (_proximityChangeHandler) {
|
|
55
|
-
proximityChangeHandler = _proximityChangeHandler;
|
|
56
|
-
|
|
57
|
-
map.on("moveend", handleMoveEnd);
|
|
58
|
-
|
|
59
|
-
handleMoveEnd();
|
|
60
|
-
} else {
|
|
61
|
-
map.off("moveend", handleMoveEnd);
|
|
62
|
-
|
|
63
|
-
proximityChangeHandler?.(undefined);
|
|
64
|
-
|
|
65
|
-
proximityChangeHandler = undefined;
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
|
|
69
|
-
setMapClickHandler(
|
|
70
|
-
_mapClickHandler: ((coordinates: [number, number]) => void) | undefined
|
|
71
|
-
): void {
|
|
72
|
-
mapClickHandler = _mapClickHandler;
|
|
73
|
-
|
|
74
|
-
if (mapClickHandler) {
|
|
75
|
-
map.on("click", handleMapClick);
|
|
76
|
-
} else {
|
|
77
|
-
map.off("click", handleMapClick);
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
flyTo(center: [number, number], zoom: number): void {
|
|
82
|
-
map.flyTo({ center, zoom, ...flyToOptions });
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
fitBounds(bbox: [number, number, number, number], padding: number): void {
|
|
86
|
-
map.fitBounds(
|
|
87
|
-
[
|
|
88
|
-
[bbox[0], bbox[1]],
|
|
89
|
-
[bbox[2], bbox[3]],
|
|
90
|
-
],
|
|
91
|
-
{ ...fitBoundsOptions, padding }
|
|
92
|
-
);
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
indicateReverse(reverse: boolean): void {
|
|
96
|
-
map.getCanvas().style.cursor = reverse ? "crosshair" : "";
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
setMarkers(
|
|
100
|
-
markedFeatures: Feature[] | undefined,
|
|
101
|
-
picked: Feature | undefined
|
|
102
|
-
): void {
|
|
103
|
-
for (const marker of markers) {
|
|
104
|
-
marker.remove();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
markers.length = 0;
|
|
108
|
-
|
|
109
|
-
if (!maplibregl) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
for (const feature of picked
|
|
114
|
-
? [...(markedFeatures ?? []), picked]
|
|
115
|
-
: markedFeatures ?? []) {
|
|
116
|
-
let m: Marker;
|
|
117
|
-
|
|
118
|
-
if (feature === picked && typeof marker === "object") {
|
|
119
|
-
m = new maplibregl.Marker(marker);
|
|
120
|
-
} else if (
|
|
121
|
-
feature !== picked &&
|
|
122
|
-
typeof showResultMarkers === "object"
|
|
123
|
-
) {
|
|
124
|
-
m = new maplibregl.Marker(showResultMarkers);
|
|
125
|
-
} else {
|
|
126
|
-
const element = document.createElement("div");
|
|
127
|
-
|
|
128
|
-
new MarkerIcon({ props: { displayIn: "maplibre" }, target: element });
|
|
129
|
-
|
|
130
|
-
m = new maplibregl.Marker({ element });
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
markers.push(m.setLngLat(feature.center).addTo(map));
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
|
|
137
|
-
setSelectedMarker(index: number): void {
|
|
138
|
-
if (selectedMarker) {
|
|
139
|
-
selectedMarker.getElement().classList.toggle("marker-selected", false);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
selectedMarker = index > -1 ? markers[index] : undefined;
|
|
143
|
-
|
|
144
|
-
selectedMarker?.getElement().classList.toggle("marker-selected", true);
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
return ctrl;
|
|
149
|
-
}
|