Skip to content

Commit

Permalink
Revert "fix: revert add handling of lat, lon coordinate queries (smei…
Browse files Browse the repository at this point in the history
…jer#385)"

This reverts commit 93c8a0c.
  • Loading branch information
alexandervlpl committed May 3, 2024
1 parent 555f153 commit a078482
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/SearchControl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ControlPosition, FeatureGroup, MarkerOptions, Map } from 'leaflet';
import SearchElement from './SearchElement';
import ResultList from './resultList';
import debounce from './lib/debounce';
import { validateCoords } from './coords';

import {
createElement,
Expand Down Expand Up @@ -373,7 +374,13 @@ const Control: SearchControl = {
const { provider } = this.options;

if (query.length) {
let results = await provider!.search({ query });
let results = [];
const coords = validateCoords(query);
if (coords) {
results = coords;
} else {
results = await provider!.search({ query });
}
results = results.slice(0, this.options.maxSuggestions);
this.resultList.render(results, this.options.resultFormat);
} else {
Expand All @@ -385,7 +392,13 @@ const Control: SearchControl = {
this.resultList.clear();
const { provider } = this.options;

const results = await provider!.search(query);
let results = [];
const coords = validateCoords(query);
if (coords) {
results = coords;
} else {
results = await provider!.search(query);
}

if (results && results.length > 0) {
this.showResult(results[0], query);
Expand Down
23 changes: 23 additions & 0 deletions src/coords.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// @ts-nocheck

export function validateCoords(query) {
const q = query?.trim();
const regex = /^(-?[0-9]*\.?\s*[0-9]*)\s*,?\s*(-?[0-9]*\.?[0-9]*)$/g;
const match = regex.exec(q);
if (match) {
const lat = Number(match[1]);
const lng = Number(match[2]);
if (-90 < lat < 90 && -180 < lng < 180) {
return [
{
x: lng,
y: lat,
label: q,
bounds: null,
raw: {},
},
];
}
}
return false;
}

0 comments on commit a078482

Please sign in to comment.