1f8c076051a87c40c7ddfdd0dbbe9f32e13f6b0e
Reviewed-on: #1
@remotestorage/module-places
This module allows you to manage saved places (Points of Interest) using the remoteStorage protocol.
It leverages Geohashes to organize data, enabling efficient retrieval of places within specific geographic areas. This structure is particularly optimized for map applications that need to load data only for the visible viewport.
For a demo application, as well as source code using this module, check out Marco.
Installation
pnpm add @remotestorage/module-places
Usage
import RemoteStorage from 'remotestoragejs';
import PlacesModule from '@remotestorage/module-places';
const remoteStorage = new RemoteStorage({
modules: [PlacesModule],
});
// Access the module
const places = remoteStorage.places;
// Store a place
await places.store({
title: 'My Favorite Coffee Shop',
lat: 52.520008,
lon: 13.404954,
});
// List all places
const allPlaces = await places.getPlaces();
console.log(allPlaces);
// List places for specific geohash prefixes (e.g. for a map view)
const areaPlaces = await places.getPlaces(['u33d', 'u33e']);
console.log(areaPlaces);
// Create a list
await places.lists.create('favorites', 'My Favorites');
// Add a place to a list (requires list ID, place ID, and place geohash)
await places.lists.addPlace('favorites', 'place-id-123', 'u33dc0');
API Reference
Interfaces
Type Aliases
Description
Languages
TypeScript
100%