Comments (1)
The approach you've suggested here is similar to what I've done in other projects at work (using Leaflet, which doesn't have native support for this, but basically the same idea).
If this can actually be made to work well with MapLibre's internal hash functionality that would be great, but I also have a feeling that it would end up working better to just reimplement it inside the Svelte code.
Off the top of my head, something like this might work well:
- Add a
hash
property to MapLibre.svelte. Don't pass it through to the MapLibre JS library though. - If it's false, ignore all the below steps.
- If there's already a valid hash value in the current URL when initializing the map, pan/zoom to that hash location instead of using the initial value for zoom/center/bounds.
- In the
moveend
event handler, update the hash in the same place that currently updatescenter
,zoom
, andbounds
. - If we started with a valid hash, then don't use zoom/center/bounds at the start. This can probably be done by just setting zoom/center/bounds to the values parsed out from the hash when initializing, to override any initially-passed-in values. But it may require some tinkering to get this just right.
I should be able to play with this later this week if you don't get to it first. Thanks for the suggestion!
from svelte-maplibre.
Related Issues (20)
- Filter not working unless I run a function HOT 4
- Upgrade to maplibre-gl 4 HOT 1
- Migrate from `eslint-plugin-svelte3` to `eslint-plugin-svelte`
- Look at using style transform function to restore added styles when switching base style HOT 1
- Updating sourceLayer after Layer creation doesn't take effect HOT 2
- Bug: Cursor does not turn into pointer when hovering over a popup/marker. HOT 1
- diffStyleUpdates does not reload layers HOT 3
- Example Github Project - Internal Error 500 HOT 1
- Allow developer to define how the map should react to updated props HOT 7
- `Unknown file extension ".svelte"` error in SvelteKit project HOT 2
- Including examples for overlaying D3 svg objects HOT 1
- Removing Markers and LineLayer HOT 1
- Upport for Svelte 5? HOT 1
- add marker on click HOT 4
- Add 3D Terrain components
- flyTo doesn't properly center to the LngLat value of the marker HOT 4
- Certain reactive properties in layer paint property do not update the map when changed
- Combine zoom and center handling into a single call to map.easeTo
- Programmatically trigger GeolocateControl HOT 3
- Warning when using history.replaceState with SvelteKit HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from svelte-maplibre.