@fieldia/map 0.14.0 → 0.15.0
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 +74 -7
- package/package.json +5 -4
- package/src/index.d.mts +3 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +2 -0
- package/src/index.mjs.map +1 -1
- package/src/lib/area.js +29 -246
- package/src/lib/area.js.map +1 -1
- package/src/lib/area.mjs +29 -246
- package/src/lib/area.mjs.map +1 -1
- package/src/lib/card.d.mts +45 -0
- package/src/lib/card.d.ts +45 -0
- package/src/lib/card.js +89 -0
- package/src/lib/card.js.map +1 -0
- package/src/lib/card.mjs +85 -0
- package/src/lib/card.mjs.map +1 -0
- package/src/lib/cluster.d.mts +12 -0
- package/src/lib/cluster.d.ts +12 -0
- package/src/lib/cluster.js +60 -0
- package/src/lib/cluster.js.map +1 -0
- package/src/lib/cluster.mjs +57 -0
- package/src/lib/cluster.mjs.map +1 -0
- package/src/lib/drawing.d.mts +36 -0
- package/src/lib/drawing.d.ts +36 -0
- package/src/lib/drawing.js +267 -0
- package/src/lib/drawing.js.map +1 -0
- package/src/lib/drawing.mjs +263 -0
- package/src/lib/drawing.mjs.map +1 -0
- package/src/lib/kinds.js +9 -2
- package/src/lib/kinds.js.map +1 -1
- package/src/lib/kinds.mjs +9 -2
- package/src/lib/kinds.mjs.map +1 -1
- package/src/lib/labels.d.mts +32 -0
- package/src/lib/labels.d.ts +32 -0
- package/src/lib/labels.js +88 -1
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +86 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/list-view.d.mts +13 -0
- package/src/lib/list-view.d.ts +13 -0
- package/src/lib/list-view.js +481 -0
- package/src/lib/list-view.js.map +1 -0
- package/src/lib/list-view.mjs +478 -0
- package/src/lib/list-view.mjs.map +1 -0
- package/src/lib/map-core.d.mts +4 -2
- package/src/lib/map-core.d.ts +4 -2
- package/src/lib/map-core.js +19 -7
- package/src/lib/map-core.js.map +1 -1
- package/src/lib/map-core.mjs +18 -7
- package/src/lib/map-core.mjs.map +1 -1
- package/src/lib/map-icons.d.mts +8 -0
- package/src/lib/map-icons.d.ts +8 -0
- package/src/lib/map-icons.js +21 -0
- package/src/lib/map-icons.js.map +1 -0
- package/src/lib/map-icons.mjs +18 -0
- package/src/lib/map-icons.mjs.map +1 -0
- package/src/lib/pins.d.mts +56 -0
- package/src/lib/pins.d.ts +56 -0
- package/src/lib/pins.js +161 -0
- package/src/lib/pins.js.map +1 -0
- package/src/lib/pins.mjs +154 -0
- package/src/lib/pins.mjs.map +1 -0
- package/src/lib/place.d.mts +1 -1
- package/src/lib/place.d.ts +1 -1
- package/src/lib/place.js +46 -6
- package/src/lib/place.js.map +1 -1
- package/src/lib/place.mjs +48 -8
- package/src/lib/place.mjs.map +1 -1
- package/src/lib/providers.d.mts +29 -8
- package/src/lib/providers.d.ts +29 -8
- package/src/lib/providers.js +217 -33
- package/src/lib/providers.js.map +1 -1
- package/src/lib/providers.mjs +217 -33
- package/src/lib/providers.mjs.map +1 -1
- package/src/lib/search-box.d.mts +4 -2
- package/src/lib/search-box.d.ts +4 -2
- package/src/lib/search-box.js +20 -6
- package/src/lib/search-box.js.map +1 -1
- package/src/lib/search-box.mjs +20 -6
- package/src/lib/search-box.mjs.map +1 -1
- package/src/lib/settings.d.mts +5 -2
- package/src/lib/settings.d.ts +5 -2
- package/src/lib/styles.d.mts +9 -1
- package/src/lib/styles.d.ts +9 -1
- package/src/lib/styles.js +146 -2
- package/src/lib/styles.js.map +1 -1
- package/src/lib/styles.mjs +144 -1
- package/src/lib/styles.mjs.map +1 -1
package/src/lib/providers.d.ts
CHANGED
|
@@ -26,14 +26,25 @@ export interface MapView {
|
|
|
26
26
|
bounds: Bounds;
|
|
27
27
|
}
|
|
28
28
|
export interface PlaceFound {
|
|
29
|
+
/** The place itself: a name, or a street and its number. */
|
|
29
30
|
label: string;
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
/** Where it is, on the line under it: its district, city, country. */
|
|
32
|
+
detail?: string;
|
|
33
|
+
/** Where it is on the map; or, for a provider whose suggestions carry none (Google's), `locate` finds it when the place is picked. */
|
|
34
|
+
lat?: number;
|
|
35
|
+
lng?: number;
|
|
36
|
+
locate?: () => Promise<{
|
|
37
|
+
lat: number;
|
|
38
|
+
lng: number;
|
|
39
|
+
address?: string;
|
|
40
|
+
}>;
|
|
32
41
|
}
|
|
33
42
|
export interface SearchRequest {
|
|
34
43
|
text: string;
|
|
35
44
|
/** Where the map is: results near it first. */
|
|
36
45
|
near?: LatLng;
|
|
46
|
+
/** How close the map is, for how far "near" reaches. */
|
|
47
|
+
zoom?: number;
|
|
37
48
|
locale: Locale;
|
|
38
49
|
signal?: AbortSignal;
|
|
39
50
|
}
|
|
@@ -63,12 +74,20 @@ export interface MapProvider {
|
|
|
63
74
|
}
|
|
64
75
|
type Fetch = typeof globalThis.fetch;
|
|
65
76
|
export interface OpenStreetMapOptions {
|
|
77
|
+
/**
|
|
78
|
+
* Whose search: Photon (komoot's, on OpenStreetMap's data), which answers as
|
|
79
|
+
* people type, nearest the map first; or Nominatim, OpenStreetMap's own,
|
|
80
|
+
* whose policy allows a search only when Enter is pressed.
|
|
81
|
+
*/
|
|
82
|
+
search?: 'photon' | 'nominatim';
|
|
83
|
+
/** Photon's address, for a copy of it the app runs: `https://photon.komoot.io` unless said. */
|
|
84
|
+
photonUrl?: string;
|
|
66
85
|
fetch?: Fetch;
|
|
67
86
|
}
|
|
68
87
|
/**
|
|
69
|
-
* OpenStreetMap's own map images
|
|
70
|
-
*
|
|
71
|
-
*
|
|
88
|
+
* OpenStreetMap's own map images, for demos and development only (its usage
|
|
89
|
+
* policy treats an app in production as heavy use), with Photon's search,
|
|
90
|
+
* which answers as people type, or Nominatim's.
|
|
72
91
|
*/
|
|
73
92
|
export declare function openStreetMap(options?: OpenStreetMapOptions): MapProvider;
|
|
74
93
|
export interface AzureMapsOptions {
|
|
@@ -90,9 +109,11 @@ export interface GoogleMapsOptions {
|
|
|
90
109
|
fetch?: Fetch;
|
|
91
110
|
}
|
|
92
111
|
/**
|
|
93
|
-
* Google's map images through its Map Tiles API
|
|
94
|
-
* language, credits for the view,
|
|
95
|
-
* name
|
|
112
|
+
* Google's map images through its Map Tiles API (a session for each kind and
|
|
113
|
+
* language, credits for the view, Google's mark in the corner its terms
|
|
114
|
+
* name), its Places API's suggestions as people type, and its Geocoding API
|
|
115
|
+
* to name a point. The key needs those three APIs enabled, and should be
|
|
116
|
+
* restricted to the app's sites.
|
|
96
117
|
*/
|
|
97
118
|
export declare function googleMaps(options: GoogleMapsOptions): MapProvider;
|
|
98
119
|
export interface MapboxOptions {
|
package/src/lib/providers.js
CHANGED
|
@@ -9,60 +9,136 @@ const query = (params) => Object.entries(params)
|
|
|
9
9
|
.filter(([, value]) => value !== undefined)
|
|
10
10
|
.map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`)
|
|
11
11
|
.join('&');
|
|
12
|
+
/**
|
|
13
|
+
* A provider's answer, or its refusal in its own words: "Places API (New) has
|
|
14
|
+
* not been used in project … or it is disabled" says what to do; a bare 403
|
|
15
|
+
* does not.
|
|
16
|
+
*/
|
|
12
17
|
async function getJson(fetchWith, url, init) {
|
|
13
18
|
const response = await fetchWith(url, init);
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
if (response.ok)
|
|
20
|
+
return response.json();
|
|
21
|
+
const body = await response.json().catch(() => null);
|
|
22
|
+
const said = pathOf(body, 'error', 'message') ?? pathOf(body, 'error_message') ?? pathOf(body, 'message');
|
|
23
|
+
throw new Error(`${url.split('?')[0]} answered ${response.status}${typeof said === 'string' && said ? `: ${said}` : ''}`);
|
|
17
24
|
}
|
|
18
25
|
const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
19
26
|
const pathOf = (value, ...path) => path.reduce((at, key) => (isObject(at) ? at[key] : undefined), value);
|
|
20
|
-
/**
|
|
21
|
-
|
|
27
|
+
/** A provider's words, without the direction marks and embeddings Azure and Google put in Arabic: unseen, they would stay in an address field and its searches. */
|
|
28
|
+
const clean = (value) => (typeof value === 'string' ? value.replace(/[\u200e\u200f\u061c\u202a-\u202e\u2066-\u2069]/g, '').trim() : '');
|
|
29
|
+
const ENTITIES = { amp: '&', lt: '<', gt: '>', quot: '"', apos: "'", nbsp: ' ', copy: '©', reg: '®' };
|
|
30
|
+
/** A credit a provider sends as HTML (Azure's are links), as the words a reader sees: never put on the page as HTML. */
|
|
31
|
+
const textOfHtml = (html) => html
|
|
32
|
+
.replace(/<[^>]*>/g, '')
|
|
33
|
+
.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z]+);/gi, (all, name) => name[0] === '#' ? String.fromCodePoint(parseInt(name.slice(name[1] === 'x' || name[1] === 'X' ? 2 : 1), name[1] === 'x' || name[1] === 'X' ? 16 : 10)) : (ENTITIES[name.toLowerCase()] ?? all))
|
|
34
|
+
.trim();
|
|
35
|
+
/** The words of a list that are there, once each, joined: "Downtown, Cairo, Egypt". */
|
|
36
|
+
const joined = (...parts) => {
|
|
37
|
+
const seen = [];
|
|
38
|
+
for (const part of parts)
|
|
39
|
+
if (typeof part === 'string' && part.trim() && !seen.includes(part.trim()))
|
|
40
|
+
seen.push(part.trim());
|
|
41
|
+
return seen.join(', ');
|
|
42
|
+
};
|
|
43
|
+
/** Places from a GeoJSON FeatureCollection: each named by the first of `labels` it has, with the line under it from `detail`. */
|
|
44
|
+
function placesFrom(collection, labels, detail) {
|
|
22
45
|
const features = pathOf(collection, 'features');
|
|
23
46
|
if (!Array.isArray(features))
|
|
24
47
|
return [];
|
|
25
48
|
return features.flatMap((feature) => {
|
|
26
49
|
const [lng, lat] = pathOf(feature, 'geometry', 'coordinates') ?? [];
|
|
27
50
|
const label = labels.map((path) => pathOf(feature, ...path)).find((text) => typeof text === 'string' && text.trim());
|
|
28
|
-
|
|
51
|
+
if (typeof lat !== 'number' || typeof lng !== 'number' || typeof label !== 'string')
|
|
52
|
+
return [];
|
|
53
|
+
const under = detail?.(pathOf(feature, 'properties'));
|
|
54
|
+
return [{ label, ...(under && under !== label ? { detail: under } : {}), lat, lng }];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/** Languages Photon names places in; in any other it gives the places' own names. */
|
|
58
|
+
const PHOTON_LANGUAGES = new Set(['en', 'de', 'fr']);
|
|
59
|
+
/** Photon's places: each one's name (or its street and number) on one line, where it is on the next. */
|
|
60
|
+
function photonPlaces(found) {
|
|
61
|
+
const features = pathOf(found, 'features');
|
|
62
|
+
if (!Array.isArray(features))
|
|
63
|
+
return [];
|
|
64
|
+
return features.flatMap((feature) => {
|
|
65
|
+
const [lng, lat] = pathOf(feature, 'geometry', 'coordinates') ?? [];
|
|
66
|
+
const p = pathOf(feature, 'properties');
|
|
67
|
+
const name = pathOf(p, 'name');
|
|
68
|
+
const label = typeof name === 'string' && name.trim() ? name.trim() : streetOf(p);
|
|
69
|
+
if (typeof lat !== 'number' || typeof lng !== 'number' || !label)
|
|
70
|
+
return [];
|
|
71
|
+
// Under a named place, its street when it has one; then its district, city and country.
|
|
72
|
+
const detail = joined(label === streetOf(p) ? '' : streetOf(p), pathOf(p, 'district'), pathOf(p, 'city'), pathOf(p, 'state'), pathOf(p, 'country'));
|
|
73
|
+
return [{ label, ...(detail ? { detail } : {}), lat, lng }];
|
|
29
74
|
});
|
|
30
75
|
}
|
|
31
76
|
/**
|
|
32
|
-
* OpenStreetMap's own map images
|
|
33
|
-
*
|
|
34
|
-
*
|
|
77
|
+
* OpenStreetMap's own map images, for demos and development only (its usage
|
|
78
|
+
* policy treats an app in production as heavy use), with Photon's search,
|
|
79
|
+
* which answers as people type, or Nominatim's.
|
|
35
80
|
*/
|
|
36
81
|
function openStreetMap(options = {}) {
|
|
37
82
|
const fetchWith = options.fetch ?? ((...args) => globalThis.fetch(...args));
|
|
38
|
-
|
|
83
|
+
const photon = (options.photonUrl ?? 'https://photon.komoot.io').replace(/\/$/, '');
|
|
84
|
+
const base = {
|
|
39
85
|
id: 'openstreetmap',
|
|
40
86
|
demoOnly: true,
|
|
41
|
-
searchAsYouType: false,
|
|
42
87
|
async tiles(kind) {
|
|
43
88
|
return kind === 'road' ? { url: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', maxZoom: 19 } : null;
|
|
44
89
|
},
|
|
45
90
|
async credits() {
|
|
46
91
|
return [{ text: '© OpenStreetMap contributors', href: 'https://www.openstreetmap.org/copyright' }];
|
|
47
92
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
93
|
+
};
|
|
94
|
+
if (options.search === 'nominatim') {
|
|
95
|
+
return {
|
|
96
|
+
...base,
|
|
97
|
+
searchAsYouType: false,
|
|
98
|
+
async search({ text, locale, signal }) {
|
|
99
|
+
const found = await getJson(fetchWith, `https://nominatim.openstreetmap.org/search?${query({ format: 'jsonv2', limit: 5, q: text, 'accept-language': locale })}`, { signal });
|
|
100
|
+
return Array.isArray(found)
|
|
101
|
+
? found.flatMap((place) => {
|
|
102
|
+
const lat = Number(pathOf(place, 'lat'));
|
|
103
|
+
const lng = Number(pathOf(place, 'lon'));
|
|
104
|
+
const whole = pathOf(place, 'display_name');
|
|
105
|
+
if (!Number.isFinite(lat) || !Number.isFinite(lng) || typeof whole !== 'string')
|
|
106
|
+
return [];
|
|
107
|
+
const name = pathOf(place, 'name');
|
|
108
|
+
const label = typeof name === 'string' && name.trim() ? name : whole.split(',')[0];
|
|
109
|
+
const rest = whole.split(',').map((part) => part.trim()).filter((part, i) => !(i === 0 && part === label));
|
|
110
|
+
return [{ label, ...(rest.length ? { detail: rest.join(', ') } : {}), lat, lng }];
|
|
111
|
+
})
|
|
112
|
+
: [];
|
|
113
|
+
},
|
|
114
|
+
async reverse({ lat, lng, locale, signal }) {
|
|
115
|
+
const found = await getJson(fetchWith, `https://nominatim.openstreetmap.org/reverse?${query({ format: 'jsonv2', lat, lon: lng, 'accept-language': locale })}`, { signal });
|
|
116
|
+
const label = pathOf(found, 'display_name');
|
|
117
|
+
return typeof label === 'string' ? label : null;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const lang = (locale) => (PHOTON_LANGUAGES.has(locale) ? locale : undefined);
|
|
122
|
+
return {
|
|
123
|
+
...base,
|
|
124
|
+
searchAsYouType: true,
|
|
125
|
+
async search({ text, near, zoom, locale, signal }) {
|
|
126
|
+
const found = await getJson(fetchWith, `${photon}/api?${query({ q: text, limit: 6, lang: lang(locale), lat: near?.lat, lon: near?.lng, zoom: near && zoom !== undefined ? Math.round(zoom) : undefined })}`, { signal });
|
|
127
|
+
return photonPlaces(found);
|
|
58
128
|
},
|
|
59
129
|
async reverse({ lat, lng, locale, signal }) {
|
|
60
|
-
const found = await getJson(fetchWith,
|
|
61
|
-
const
|
|
62
|
-
return
|
|
130
|
+
const found = await getJson(fetchWith, `${photon}/reverse?${query({ lat, lon: lng, limit: 1, lang: lang(locale) })}`, { signal });
|
|
131
|
+
const [place] = photonPlaces(found);
|
|
132
|
+
return place ? joined(place.label, place.detail) : null;
|
|
63
133
|
},
|
|
64
134
|
};
|
|
65
135
|
}
|
|
136
|
+
/** A street with its number, as a place without a name of its own is called. */
|
|
137
|
+
function streetOf(properties) {
|
|
138
|
+
const street = pathOf(properties, 'street');
|
|
139
|
+
const number = pathOf(properties, 'housenumber');
|
|
140
|
+
return typeof street === 'string' ? [street, typeof number === 'string' ? number : ''].filter(Boolean).join(' ') : '';
|
|
141
|
+
}
|
|
66
142
|
/** Azure lists the languages it draws; it refuses any other tag, `ar-001` among them. */
|
|
67
143
|
const AZURE_LANGUAGE = { en: 'en-US', ar: 'ar', fr: 'fr-FR', de: 'de-DE' };
|
|
68
144
|
const AZURE_TILESET = { road: 'microsoft.base.road', dark: 'microsoft.base.darkgrey', satellite: 'microsoft.imagery' };
|
|
@@ -89,7 +165,7 @@ function azureMaps(options) {
|
|
|
89
165
|
const answer = await ask('map/attribution', { 'api-version': '2024-04-01', tilesetId: AZURE_TILESET[kind], zoom: Math.round(zoom), bounds: [bounds.west, bounds.south, bounds.east, bounds.north].join(',') });
|
|
90
166
|
const copyrights = pathOf(answer, 'copyrights');
|
|
91
167
|
if (Array.isArray(copyrights) && copyrights.length)
|
|
92
|
-
return copyrights.filter((c) => typeof c === 'string').map((
|
|
168
|
+
return copyrights.filter((c) => typeof c === 'string').map((html) => ({ text: textOfHtml(html) })).filter((c) => c.text);
|
|
93
169
|
}
|
|
94
170
|
catch {
|
|
95
171
|
// Its credits stay said even when the service that lists them is down.
|
|
@@ -97,20 +173,65 @@ function azureMaps(options) {
|
|
|
97
173
|
return [{ text: '© Microsoft' }];
|
|
98
174
|
},
|
|
99
175
|
async search({ text, near, locale, signal }) {
|
|
100
|
-
const
|
|
101
|
-
|
|
176
|
+
const coordinates = near ? `${near.lng},${near.lat}` : undefined;
|
|
177
|
+
// Its autocomplete reads a word half typed, as geocoding does not; its suggestions carry no place, so a picked one is geocoded then.
|
|
178
|
+
const found = await ask('geocode:autocomplete', { 'api-version': '2026-01-01', top: 5, query: text, coordinates }, locale, signal);
|
|
179
|
+
return azurePlaces(found).map((place) => ({
|
|
180
|
+
...place,
|
|
181
|
+
locate: async () => {
|
|
182
|
+
const address = [place.label, place.detail].filter(Boolean).join(', ');
|
|
183
|
+
const [hit] = azurePlaces(await ask('geocode', { 'api-version': '2023-06-01', top: 1, query: place.whole ?? address, coordinates }, locale));
|
|
184
|
+
if (hit?.lat === undefined || hit.lng === undefined)
|
|
185
|
+
throw new Error('Azure Maps found no place');
|
|
186
|
+
// The address as its two lines read: with its town, which Azure's own may leave out.
|
|
187
|
+
return { lat: hit.lat, lng: hit.lng, address };
|
|
188
|
+
},
|
|
189
|
+
})).map(({ whole: _whole, ...place }) => place);
|
|
102
190
|
},
|
|
103
191
|
async reverse({ lat, lng, locale, signal }) {
|
|
104
192
|
const found = await ask('reverseGeocode', { 'api-version': '2023-06-01', coordinates: `${lng},${lat}` }, locale, signal);
|
|
105
|
-
|
|
193
|
+
const features = pathOf(found, 'features');
|
|
194
|
+
const formatted = Array.isArray(features) ? clean(pathOf(features[0], 'properties', 'address', 'formattedAddress')) : '';
|
|
195
|
+
return formatted || null;
|
|
106
196
|
},
|
|
107
197
|
};
|
|
108
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Azure's addresses on two lines: the street (or the place's name), then the
|
|
201
|
+
* rest of the address, its town always in it; where it is, when the answer
|
|
202
|
+
* says (geocoding does, autocomplete does not); and the whole address as Azure
|
|
203
|
+
* wrote it, to geocode a suggestion by.
|
|
204
|
+
*/
|
|
205
|
+
function azurePlaces(found) {
|
|
206
|
+
const features = pathOf(found, 'features');
|
|
207
|
+
if (!Array.isArray(features))
|
|
208
|
+
return [];
|
|
209
|
+
return features.flatMap((feature) => {
|
|
210
|
+
const [lng, lat] = pathOf(feature, 'geometry', 'coordinates') ?? [];
|
|
211
|
+
const address = pathOf(feature, 'properties', 'address');
|
|
212
|
+
const whole = clean(pathOf(address, 'formattedAddress'));
|
|
213
|
+
const parts = whole
|
|
214
|
+
.split(',')
|
|
215
|
+
.map((part) => part.trim())
|
|
216
|
+
.filter(Boolean);
|
|
217
|
+
const label = clean(pathOf(address, 'addressLine')) || parts[0];
|
|
218
|
+
if (!label)
|
|
219
|
+
return [];
|
|
220
|
+
let rest = parts.filter((part, i) => !(i === 0 && part === label) && part !== label);
|
|
221
|
+
const town = clean(pathOf(address, 'locality'));
|
|
222
|
+
if (town && !rest.includes(town))
|
|
223
|
+
rest = [town, ...rest];
|
|
224
|
+
const at = typeof lat === 'number' && typeof lng === 'number' ? { lat, lng } : {};
|
|
225
|
+
return [{ label, ...(rest.length ? { detail: rest.join(', ') } : {}), ...at, ...(whole ? { whole } : {}) }];
|
|
226
|
+
});
|
|
227
|
+
}
|
|
109
228
|
const GOOGLE_MAP_TYPE = { road: 'roadmap', satellite: 'satellite' };
|
|
110
229
|
/**
|
|
111
|
-
* Google's map images through its Map Tiles API
|
|
112
|
-
* language, credits for the view,
|
|
113
|
-
* name
|
|
230
|
+
* Google's map images through its Map Tiles API (a session for each kind and
|
|
231
|
+
* language, credits for the view, Google's mark in the corner its terms
|
|
232
|
+
* name), its Places API's suggestions as people type, and its Geocoding API
|
|
233
|
+
* to name a point. The key needs those three APIs enabled, and should be
|
|
234
|
+
* restricted to the app's sites.
|
|
114
235
|
*/
|
|
115
236
|
function googleMaps(options) {
|
|
116
237
|
const fetchWith = options.fetch ?? ((...args) => globalThis.fetch(...args));
|
|
@@ -144,9 +265,72 @@ function googleMaps(options) {
|
|
|
144
265
|
return opening;
|
|
145
266
|
}
|
|
146
267
|
}
|
|
268
|
+
/** One session from the first letter typed to the place picked: Google charges the suggestions of a session that ends in a pick as the pick. */
|
|
269
|
+
let searching;
|
|
270
|
+
const newSession = () => (globalThis.crypto?.randomUUID?.() ?? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => ((Math.random() * 16) | (c === 'x' ? 0 : 8)).toString(16).slice(0, 1)));
|
|
271
|
+
/** How far "near" reaches at a zoom: about what the map shows, within Google's bounds. */
|
|
272
|
+
const radiusAt = (zoom) => Math.round(Math.min(50_000, Math.max(100, 40_075_016 / 2 ** (zoom ?? 12))));
|
|
147
273
|
return {
|
|
148
274
|
id: 'google',
|
|
149
275
|
logo: { text: 'Google Maps', ...(options.logo ? { image: options.logo } : {}) },
|
|
276
|
+
searchAsYouType: true,
|
|
277
|
+
async search({ text, near, zoom, locale, signal }) {
|
|
278
|
+
searching ??= newSession();
|
|
279
|
+
const token = searching;
|
|
280
|
+
const answer = await getJson(fetchWith, 'https://places.googleapis.com/v1/places:autocomplete', {
|
|
281
|
+
method: 'POST',
|
|
282
|
+
signal,
|
|
283
|
+
headers: { 'Content-Type': 'application/json', 'X-Goog-Api-Key': options.key },
|
|
284
|
+
body: JSON.stringify({
|
|
285
|
+
input: text,
|
|
286
|
+
languageCode: locale,
|
|
287
|
+
...(options.region ? { regionCode: options.region } : {}),
|
|
288
|
+
sessionToken: token,
|
|
289
|
+
...(near ? { locationBias: { circle: { center: { latitude: near.lat, longitude: near.lng }, radius: radiusAt(zoom) } } } : {}),
|
|
290
|
+
}),
|
|
291
|
+
});
|
|
292
|
+
const suggestions = pathOf(answer, 'suggestions');
|
|
293
|
+
if (!Array.isArray(suggestions))
|
|
294
|
+
return [];
|
|
295
|
+
return suggestions.flatMap((suggestion) => {
|
|
296
|
+
const prediction = pathOf(suggestion, 'placePrediction');
|
|
297
|
+
const placeId = pathOf(prediction, 'placeId');
|
|
298
|
+
const label = clean(pathOf(prediction, 'structuredFormat', 'mainText', 'text')) || clean(pathOf(prediction, 'text', 'text'));
|
|
299
|
+
if (typeof placeId !== 'string' || !label)
|
|
300
|
+
return [];
|
|
301
|
+
const detail = clean(pathOf(prediction, 'structuredFormat', 'secondaryText', 'text'));
|
|
302
|
+
return [
|
|
303
|
+
{
|
|
304
|
+
label,
|
|
305
|
+
...(detail ? { detail } : {}),
|
|
306
|
+
locate: async () => {
|
|
307
|
+
const place = await getJson(fetchWith, `https://places.googleapis.com/v1/places/${encodeURIComponent(placeId)}?${query({ languageCode: locale, sessionToken: token })}`, {
|
|
308
|
+
headers: { 'X-Goog-Api-Key': options.key, 'X-Goog-FieldMask': 'location,formattedAddress' },
|
|
309
|
+
});
|
|
310
|
+
// Picked: the session is over, the next letter typed opens another.
|
|
311
|
+
if (searching === token)
|
|
312
|
+
searching = undefined;
|
|
313
|
+
const latitude = pathOf(place, 'location', 'latitude');
|
|
314
|
+
const longitude = pathOf(place, 'location', 'longitude');
|
|
315
|
+
if (typeof latitude !== 'number' || typeof longitude !== 'number')
|
|
316
|
+
throw new Error('Google gave no place');
|
|
317
|
+
const address = clean(pathOf(place, 'formattedAddress'));
|
|
318
|
+
return { lat: latitude, lng: longitude, ...(address ? { address } : {}) };
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
];
|
|
322
|
+
});
|
|
323
|
+
},
|
|
324
|
+
async reverse({ lat, lng, locale, signal }) {
|
|
325
|
+
const answer = await getJson(fetchWith, `https://maps.googleapis.com/maps/api/geocode/json?${query({ latlng: `${lat},${lng}`, language: locale, key: options.key })}`, { signal });
|
|
326
|
+
// The Geocoding API refuses inside a 200: its status says so, and its message why.
|
|
327
|
+
const status = pathOf(answer, 'status');
|
|
328
|
+
if (typeof status === 'string' && status !== 'OK' && status !== 'ZERO_RESULTS')
|
|
329
|
+
throw new Error(`Google's Geocoding API answered ${status}: ${String(pathOf(answer, 'error_message') ?? '')}`);
|
|
330
|
+
const results = pathOf(answer, 'results');
|
|
331
|
+
const named = Array.isArray(results) ? clean(pathOf(results[0], 'formatted_address')) : '';
|
|
332
|
+
return named || null;
|
|
333
|
+
},
|
|
150
334
|
async tiles(kind, locale) {
|
|
151
335
|
if (!GOOGLE_MAP_TYPE[kind])
|
|
152
336
|
return null;
|
|
@@ -194,10 +378,10 @@ function mapbox(options) {
|
|
|
194
378
|
];
|
|
195
379
|
},
|
|
196
380
|
async search({ text, near, locale, signal }) {
|
|
197
|
-
return placesFrom(await ask('forward', { q: text, limit: 5, language: locale, proximity: near ? `${near.lng},${near.lat}` : undefined }, signal), ['properties', '
|
|
381
|
+
return placesFrom(await ask('forward', { q: text, limit: 5, language: locale, proximity: near ? `${near.lng},${near.lat}` : undefined }, signal), [['properties', 'name'], ['properties', 'full_address']], (p) => joined(pathOf(p, 'place_formatted')));
|
|
198
382
|
},
|
|
199
383
|
async reverse({ lat, lng, locale, signal }) {
|
|
200
|
-
return placesFrom(await ask('reverse', { longitude: lng, latitude: lat, language: locale, limit: 1 }, signal), ['properties', 'full_address'], ['properties', 'name'])[0]?.label ?? null;
|
|
384
|
+
return placesFrom(await ask('reverse', { longitude: lng, latitude: lat, language: locale, limit: 1 }, signal), [['properties', 'full_address'], ['properties', 'name']])[0]?.label ?? null;
|
|
201
385
|
},
|
|
202
386
|
};
|
|
203
387
|
}
|
package/src/lib/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/providers.ts"],"names":[],"mappings":"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"}
|