Basic mechanism to support different tile providers.
This commit is contained in:
1 parent
1fb7f47c05
commit
f10fa11348
6 files changed
+85
-7
No files matched your search
@@ -23,12 +23,14 @@ import ShowLocationIcon from '../get-location/ShowLocationIcon.svg';
|
||||
import { Back, Forward } from '../back-forward';
|
||||
import GpxImport from '../gpx-import';
|
||||
import AllGpxes from '../all-gpxes';
|
||||
import { mapTileProviders } from '../map-tile-provider';
|
||||
|
||||
const [getState, setState] = createSignal({
|
||||
lon: 0,
|
||||
lat: 0,
|
||||
rotation: 0,
|
||||
zoom: 0,
|
||||
provider: 'osm',
|
||||
});
|
||||
|
||||
export { getState };
|
||||
@@ -39,10 +41,20 @@ const Map: Component = () => {
|
||||
const navigate = useNavigate();
|
||||
|
||||
let target: HTMLDivElement;
|
||||
console.log({ caller: 'Map', center: params.center });
|
||||
|
||||
createEffect(() => {
|
||||
console.log({
|
||||
caller: 'Map',
|
||||
params: JSON.stringify({
|
||||
provider: params.provider,
|
||||
lon: params.lon,
|
||||
lat: params.lat,
|
||||
rotation: params.rotation,
|
||||
zoom: params.zoom,
|
||||
}),
|
||||
});
|
||||
setState({
|
||||
provider: params.provider,
|
||||
lon: +params.lon,
|
||||
lat: +params.lat,
|
||||
rotation: +params.rotation,
|
||||
@@ -108,7 +120,7 @@ const Map: Component = () => {
|
||||
const center = view?.getCenter();
|
||||
if (center) {
|
||||
navigate(
|
||||
`/map/${center[0]}/${
|
||||
`/map/${getState().provider}/${center[0]}/${
|
||||
center[1]
|
||||
}/${view?.getZoom()}/${view?.getRotation()}`
|
||||
);
|
||||
@@ -129,7 +141,7 @@ const Map: Component = () => {
|
||||
}),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new OSM(),
|
||||
source: mapTileProviders[params.provider].source,
|
||||
}),
|
||||
new VectorLayer({ source: new VectorSource() }),
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user