Commit Graph

455 Commits

Author SHA1 Message Date
Eric van der Vlist 4238ce0938 Using maps instead of objects to store tiles and removing the reinititialization when TiledLayer properties are updated. 2022-10-19 14:53:22 +02:00
Eric van der Vlist b5dd10e920 Adding tests for the <Map> component. 2022-10-19 13:55:44 +02:00
Eric van der Vlist b3a8f60f1e Doc 2022-10-19 13:04:56 +02:00
Eric van der Vlist acbefa983d Using Jotai between <Map> and <Handlers> (TODO: adapt Handlers.test.tsx) 2022-10-19 11:17:24 +02:00
Eric van der Vlist 552a49e0d6 Doc 2022-10-18 20:40:12 +02:00
Eric van der Vlist 4f069ad63f Adding touch handlers. 2022-10-18 18:47:40 +02:00
Eric van der Vlist f1ad35a479 Adding double click and wheel handlers 2022-10-18 17:42:11 +02:00
Eric van der Vlist 4f64d9906c Using useRef instead of useState in <Handler/> (no need to re-render when mouse state is updated). 2022-10-18 17:18:11 +02:00
Eric van der Vlist d758775ab7 Testing mouseMove throttling 2022-10-18 17:11:07 +02:00
Eric van der Vlist 016f99daf6 Idem with <Tile/> 2022-10-18 16:57:18 +02:00
Eric van der Vlist a7f78e0fa9 Avoid uncessessary rerendering (see https://medium.com/swlh/making-stupid-react-smart-in-re-rendering-5f04b5bab327 ). 2022-10-18 16:52:24 +02:00
Eric van der Vlist ab5c8ff6bb Simple implementation of event handler throttling. 2022-10-18 14:24:21 +02:00
Eric van der Vlist 963f6037ca Managing TiledLayer from Map. 2022-10-18 13:57:46 +02:00
Eric van der Vlist 7912d0bfe8 ntegration and bug fix 2022-10-18 13:45:16 +02:00
Eric van der Vlist 90e2c833a2 Adding some tests for <Handlers/> 2022-10-18 11:44:50 +02:00
Eric van der Vlist da50441abc Re-implementing the mouse handlers. 2022-10-18 10:10:23 +02:00
Eric van der Vlist 16097c1e2e Testing negative indices fot TiledLayer components. 2022-10-17 23:04:58 +02:00
Eric van der Vlist 0d927c72cd Tests and doc 2022-10-17 22:37:07 +02:00
Eric van der Vlist 460bfbf6e5 Doc 2022-10-17 21:31:21 +02:00
Eric van der Vlist 42e2d7c2c7 Adding the Tile component. 2022-10-17 21:23:57 +02:00
Eric van der Vlist f6a0eb8963 Making sure TiledLaer's are reinitialized if their keyObject change.s 2022-10-17 20:52:10 +02:00
Eric van der Vlist ffa58ee303 Bug fix. 2022-10-17 18:30:26 +02:00
Eric van der Vlist a5dc279e4e Adding the notion of TileFactory 2022-10-17 18:17:13 +02:00
Eric van der Vlist cf50675077 Testing TiledLayer re-rendering. 2022-10-17 17:56:03 +02:00
Eric van der Vlist 36418a3e3c Making TiledLayer more generic. 2022-10-17 17:48:30 +02:00
Eric van der Vlist b3e1e4de73 Adding docuri's and unit tests. 2022-10-17 17:15:24 +02:00
Eric van der Vlist 0b7de58a4e Check spelling 2022-10-17 13:47:35 +02:00
Eric van der Vlist fcef58f4df Adding typedoc in the loop 2022-10-17 12:04:25 +02:00
Eric van der Vlist 9c1f4aeb2f Empty Map component. 2022-10-17 10:37:26 +02:00
Eric van der Vlist a4bd11aab0 Restarting from scratch 2022-10-17 10:08:00 +02:00
Eric van der Vlist ed951208e8 Adding a few files which are currently not used before a huge refactoring... 2022-10-17 09:41:27 +02:00
Eric van der Vlist ce074b5d22 Stupib bug sorting notes. 2022-10-11 23:32:37 +02:00
Eric van der Vlist 61d3373c89 Missing file... 2022-10-11 23:21:59 +02:00
Eric van der Vlist dca68e17e4 Refactoring to see if (and how easy) it is to use the same chat component (with its properties) in 2 different contextes. 2022-10-11 23:18:23 +02:00
Eric van der Vlist 9bb2f48d4a Pretty nice (IMHO) version of avatars for locations... 2022-10-11 22:15:21 +02:00
Eric van der Vlist 9ce7f33cb4 Still working on avatars for locations. 2022-10-11 19:25:02 +02:00
Eric van der Vlist d1da0a110d Starting to implement avatars for locations (WIP). 2022-10-11 17:38:23 +02:00
Eric van der Vlist 6954c473ee Also moving the map center to the newest location when recording tracks (must think more carefully of somethin better for #12). 2022-10-11 16:16:06 +02:00
Eric van der Vlist 57d17a1fa6 Requesting a wake lock so that the screen is not dimmedwhileusing the app. 2022-10-11 16:12:45 +02:00
Eric van der Vlist 304c4d38b7 Reinitializing noteIndex when fetching new notes (to avoid out of length indexes). 2022-10-11 14:15:46 +02:00
Eric van der Vlist 5a7402313e Improved version of OSM notes shown as chat messages. 2022-10-10 22:08:50 +02:00
Eric van der Vlist 6c0d3bfb11 Better presentation of OSM notes. 2022-10-10 19:13:14 +02:00
Eric van der Vlist bdc527ae05 Removing the "i" symbol on the reticle. 2022-10-10 11:57:08 +02:00
Eric van der Vlist 3b86f143c7 Fetching OSM notes (more work needed to dosplai them). 2022-10-10 11:54:28 +02:00
Eric van der Vlist 1b0ab84923 Querying nominatim reverse (OSM) to get addresses. 2022-10-09 22:11:03 +02:00
Eric van der Vlist 05c560285a Disabling pointer events on GPX tracks. 2022-10-09 20:59:43 +02:00
Eric van der Vlist f9a6fb1d18 Adding a modal to display inforlation about a location. 2022-10-09 18:55:21 +02:00
Eric van der Vlist 0762a4da7a Reticle (improved) 2022-10-09 11:29:43 +02:00
Eric van der Vlist 27305c4b21 Still playing with the reticle... 2022-10-08 23:59:09 +02:00
Eric van der Vlist 77f5ab3996 Storing window's innerheight and innerwidth in redux' state to make it easier to follow for components. 2022-10-08 20:45:44 +02:00
Eric van der Vlist e206d905b7 Expermienting a reticle. 2022-10-08 20:31:29 +02:00
Eric van der Vlist 5822198f92 Localization (and language chooser)... 2022-10-08 17:33:32 +02:00
Eric van der Vlist 653574025e i18n 2022-10-07 21:24:10 +02:00
Eric van der Vlist 2612d7a3b4 I18n using react-localization (#8) 2022-10-04 19:04:49 +02:00
Eric van der Vlist 16e439db41 Localization, WIP, (#8) 2022-10-04 12:44:41 +02:00
Eric van der Vlist 330b4bb721 Cleanup. 2022-10-04 11:18:22 +02:00
Eric van der Vlist 2376d4daba Cosmetics 2022-10-04 07:54:32 +02:00
Eric van der Vlist c0015a7cfa Creating a mechanism to store settings both in the database and in redux. 2022-10-03 21:08:27 +02:00
Eric van der Vlist 07edc22d31 Trying a different DB config. 2022-10-03 16:04:43 +02:00
Eric van der Vlist 3b23094de5 Restoring JSON sample 2022-10-03 15:37:43 +02:00
Eric van der Vlist 062288ebdc Fixing a bug in the GPX importer library (#19) 2022-10-03 15:37:10 +02:00
Eric van der Vlist 0d1cdf39de Testing DocURI (#4 and #15) 2022-10-03 11:08:47 +02:00
Eric van der Vlist 0a11ccbdb4 Removing Virtuoso which gave more troubles than benefits and starting to use IonCards in the tracks browser (#16). 2022-10-03 00:18:53 +02:00
Eric van der Vlist cb1c38a9fb Using Virtuoso (for scrolling) and IonCards to start improving the track browser (#16) 2022-10-02 23:26:56 +02:00
Eric van der Vlist 52b03d8331 Regression for the GPX export when running in a browser. 2022-10-02 23:26:18 +02:00
Eric van der Vlist d85f5d3f95 Increased height for thetrack browser (#16) and testing the onClick handler on paths (#17) 2022-10-02 22:29:10 +02:00
Eric van der Vlist d8cad992d8 Renaming a component source file 2022-10-02 22:09:48 +02:00
Eric van der Vlist 7036589a44 Changing the stroke wdith for the tracks. 2022-10-02 22:05:00 +02:00
Eric van der Vlist 11c2a1713f Firstattempt to reduce te number of points when recording a track (#13): the minimal distance is now 10m and a filter with a minimal time of 15s has been added.
This should now be tested on the road !
2022-10-02 21:52:02 +02:00
Eric van der Vlist 924dd47395 Move the current location on the map while recording (#12) 2022-10-02 21:00:38 +02:00
Eric van der Vlist e103e928b6 Renaming... 2022-10-02 20:40:27 +02:00
Eric van der Vlist 9c004c8021 Changing the icon used for thecurrent location. 2022-10-02 19:09:03 +02:00
Eric van der Vlist 269f35a0a5 Storing the GPX export (#9) in Download directory and checking if the file allready exiss. 2022-10-02 18:22:49 +02:00
Eric van der Vlist 0b96918f3d Using the FileOpener plugin to open the GPX file after export (#9). 2022-10-02 17:16:41 +02:00
Eric van der Vlist ca28d767c0 Hybrid implementation for GPXexport (#9) using the capacitor FileSystem plugin when needed. The export is done in the Documents/Download folder and there is no notification (yet). 2022-10-02 16:37:06 +02:00
Eric van der Vlist cb4a257003 First version with a GPX export (#9) that works in a browser but, unfortunately, doesn't wotk on Adroid ! 2022-10-02 12:45:08 +02:00
Eric van der Vlist 93054115a5 Figuring how files can be downloaded to implement GPXexport (#9). Also changing the icon used for GPX import. 2022-10-02 00:00:36 +02:00
Eric van der Vlist ea97d6bc09 Adding / updating tile servers and changing the order of zoom in/out in the mouse wheel handler. 2022-09-28 13:38:38 +02:00
Eric van der Vlist 2fe7452811 Adding the possibility to delete tracks, moving the import button into the track browser, changing the background geolocation precision to 5m and adding a couple of calls to db.compact() and db.viewCleanup(). 2022-09-28 09:46:57 +02:00
Eric van der Vlist 2a0dbef552 Beginning to implement a dialog to browse within the tracks. 2022-09-27 23:58:58 +02:00
Eric van der Vlist 5119354137 Creating a library for modal animations. 2022-09-27 22:06:20 +02:00
Eric van der Vlist 3235d9ae70 Basic dialog to start/pause/stop and clear track recording. 2022-09-27 21:53:52 +02:00
Eric van der Vlist d71881dc02 Adding a check to reevaluate the map if min/max zoom levels are different in choosen tile servers. 2022-09-27 18:03:43 +02:00
Eric van der Vlist 59fbe4aa3f Improving the tile server chooser (#7) 2022-09-27 17:34:17 +02:00
Eric van der Vlist f5ce103cb3 Checking zoom and tiles boundaries (#6) 2022-09-27 15:10:23 +02:00
Eric van der Vlist ac67a063c2 First steps at supporting other map tile servers (#7) 2022-09-27 12:01:26 +02:00
Eric van der Vlist 32f147bdb6 Different colors for the current GPX track and other tracks. 2022-09-27 09:40:49 +02:00
Eric van der Vlist 0f0f1c8639 Smoother stroke edges and different color for GPX tracks 2022-09-27 09:10:08 +02:00
Eric van der Vlist 6e9fc21830 Storing track points independently from their tracks (#3). Also adding some basic tests for gpx database operations. 2022-09-26 21:48:46 +02:00
Eric van der Vlist e1da4a1e4a Cleanup indexes at start time and waith till the cleanup is done before rendering the whiteboard. 2022-09-26 11:51:27 +02:00
Eric van der Vlist fafde7b831 Starting to refactor to store track points independently from their tracks (WIP) (#3) 2022-09-26 01:46:19 +02:00
Eric van der Vlist aea83fac5d Testing error status on db.get(). 2022-09-25 18:54:13 +02:00
Eric van der Vlist b7e1a318a8 Adding error log messages. 2022-09-25 18:47:37 +02:00
Eric van der Vlist 20ae635d3f Storing the current track in pouchdb. 2022-09-25 08:46:05 +02:00
Eric van der Vlist 82997cd53f Re-implementing the background geolocation (not yet stored in a track) 2022-09-24 18:56:41 +02:00
Eric van der Vlist eae6296c2a Using pouchdb instead of redux to store tracks. 2022-09-24 17:08:53 +02:00
Eric van der Vlist 52ca7e3fe7 Removing localforage and friends. 2022-09-24 10:31:40 +02:00
Eric van der Vlist 2831f901a7 Changing components stacking. 2022-09-24 00:29:42 +02:00
Eric van der Vlist 548d4a43cb Using CordovaSQLiteDriver whenever possible. 2022-09-23 23:39:53 +02:00
Eric van der Vlist d0bac1c509 Storing imported tracks in local "forage". 2022-09-23 22:34:59 +02:00
Eric van der Vlist bb2130793d Using UUIDs to identify tracks (instead of a numerical index) to make it easier to synchronize databases. 2022-09-23 15:07:39 +02:00
Eric van der Vlist a212841c6c Supporting multiple tracks. 2022-09-23 15:01:02 +02:00
Eric van der Vlist 3af532de54 Cosmetics 2022-09-22 23:22:20 +02:00
Eric van der Vlist 3856e4b516 Displaying a GPX track 2022-09-22 23:05:50 +02:00
Eric van der Vlist a559a37952 Parsing GPX files. 2022-09-22 21:50:39 +02:00
Eric van der Vlist c545ff1d15 Adding a file chooser to import GPX files 2022-09-22 15:47:41 +02:00
Eric van der Vlist 7447cfd128 Using Ionic components. 2022-09-22 13:52:08 +02:00
Eric van der Vlist 18c2819da9 Displaying the current location on the whiteboard. 2022-09-21 16:17:43 +02:00
Eric van der Vlist f0cf255f14 Changed the zoom relative level for the SVG overlay to avoid issues at higher zoom levels (probably due to rounding errors). 2022-09-21 15:47:57 +02:00
Eric van der Vlist 7808b7db7e Implementing a SVG layout (aka whiteboard). 2022-09-21 00:23:42 +02:00
Eric van der Vlist 92700c3964 Fixing compilation warnings. 2022-09-20 17:38:24 +02:00
Eric van der Vlist 46cffdcc4c Button to center the map on the current location. 2022-09-20 17:29:02 +02:00
Eric van der Vlist 88755e35f9 Changing the scale step for double click and mouse wheel events. 2022-09-14 20:41:31 +02:00
Eric van der Vlist 4204168a3f Taking scale into account while reevaluating the state. 2022-09-14 20:36:43 +02:00
Eric van der Vlist 67e4d13989 Adding some first unit test and managing translations with scale=1 2022-09-14 17:50:27 +02:00
Eric van der Vlist 3a7d4987a3 Refactoring to take advantage of Immer's drafts 2022-09-14 11:52:37 +02:00
Eric van der Vlist d5196f4340 Re-implementing basic scale and shift actions (without reevaluating the scope). 2022-09-14 11:21:39 +02:00
Eric van der Vlist 2eb9a6cb47 Adding scale support in the computeStateFromScope method. 2022-09-14 10:26:27 +02:00
Eric van der Vlist 4687624259 Fixing an obvious bug 2022-09-14 10:08:14 +02:00
Eric van der Vlist 4bbb642b41 Cosmetic (reformat) 2022-09-14 10:03:49 +02:00
Eric van der Vlist db0761efd1 Refactoring (in progress) to put most of the logic in Redux reducers. 2022-09-13 18:17:08 +02:00
Eric van der Vlist fd79fba51f Using tiles. 2022-09-12 16:45:27 +02:00
Eric van der Vlist c4bd74a598 Handling wheel events 2022-09-12 15:58:10 +02:00
Eric van der Vlist b81b5e509e Renaming src/components/slippy/index.tsx -> src/components/slippy/sleepy.tsx 2022-09-12 15:31:02 +02:00
Eric van der Vlist 75b4bb2e2b Moving the underlying map out of the slippy component and handling window resize events. 2022-09-12 15:10:12 +02:00
Eric van der Vlist 2207ae1652 Moving slippy components in their own directory. 2022-09-12 09:17:06 +02:00
Eric van der Vlist d4f3e96743 Using redux selector in layer rather than viewport. 2022-09-12 09:01:54 +02:00
Eric van der Vlist ec0883ac54 *Not* using redux for mouseState. 2022-09-12 08:53:11 +02:00
Eric van der Vlist 3421686f1f Using Redux to provide application wise slippy context. 2022-09-12 00:45:40 +02:00
Eric van der Vlist 716d05fb3e Starting again with what has been developed as sandbox/map. 2022-09-11 20:01:12 +02:00
Eric van der Vlist 2b1066fd5b Still implementing mouse handlers. 2022-09-06 23:46:08 +02:00
Eric van der Vlist ec48c63667 Staring to implement mouse handlers. 2022-09-06 19:24:30 +02:00
Eric van der Vlist af226285be Debouncing resize events 2022-09-06 11:44:36 +02:00
Eric van der Vlist 4e26d94843 Correct algorithm for centering tiles. 2022-09-06 11:39:27 +02:00
Eric van der Vlist 9e8aec244e Attempt to create a new, more react friendly slippy map library. 2022-09-06 00:08:17 +02:00
Eric van der Vlist a154a5aa44 Refactoring (moving geolocation in a library) 2022-09-04 22:45:20 +02:00
Eric van der Vlist d015c4f1b9 Working around the fact that react's strict mode initializes compenents twice... 2022-09-04 21:08:31 +02:00
Eric van der Vlist 5867338836 Introducing redux to manage tracks. 2022-09-04 19:28:20 +02:00
Eric van der Vlist b01870d234 Changing the overlays order so that controls are on top of tracks. 2022-09-03 23:39:58 +02:00
Eric van der Vlist f7b59e5ead Reanbling background geolocation. 2022-09-03 23:31:45 +02:00
Eric van der Vlist a8da543228 Refactoring live-overlay which was using Pigeon's GeoJson component to create a GPXOverlay. 2022-09-03 23:15:29 +02:00
Eric van der Vlist 194b46bad0 First working example with background geolocation, that is: working on Android, not tested on iOS and needing a fallback on the web. 2022-09-02 23:41:55 +02:00
Eric van der Vlist ff32b75480 Moving things around between map and overlay components. 2022-09-02 17:56:10 +02:00
Eric van der Vlist 95205bb49f Adding a sample GeoJson overlay (and figuring out a dirty way to tunnel mapState and latLngToPixel between Pigeon components). 2022-09-02 15:56:41 +02:00
Eric van der Vlist 3dfbd648b7 Reformating 2022-09-02 11:05:50 +02:00
Eric van der Vlist 8ec7e7d045 Adding zoom control 2022-09-01 22:37:46 +02:00
Eric van der Vlist d8c3035bb2 Trying to control the center and zoom of pigeon maps (doesn't work on my phone) 2022-09-01 21:30:31 +02:00
Eric van der Vlist a0ee63ef09 "Trying pigeon-maps as an alternative to react-leaflet +leaflet and it seems much easier (and reactive). 2022-09-01 19:05:23 +02:00
Eric van der Vlist 01fc789614 Moving the map in a component and, trying to make it live, seeing that react-leaflet isn't really... reactive !
(See https://stackoverflow.com/questions/65763931/react-leaflet-update-map-center - basically: most of the map properties are immutable)
2022-09-01 18:48:29 +02:00
Eric van der Vlist 1f53fbd3be Updating index.tsx to reflect changes between React 17 and 18. 2022-09-01 18:47:36 +02:00
Eric van der Vlist 6e419839e9 Basic leaflet example shamelessly stolen from various places on the web. 2022-08-31 22:03:27 +02:00
Eric van der Vlist 0860516d66 Project config and more cleanup. 2022-08-31 20:22:00 +02:00
Eric van der Vlist 432e36f9e9 Cleaned up initial source. 2022-08-31 15:30:20 +02:00
Eric van der Vlist 6079ec1577 Cleaned up initial source. 2022-08-31 15:28:20 +02:00
Eric van der Vlist 58d441f91e Initial commit 2022-08-31 14:35:20 +02:00