Sandbox
Zum Ausprobieren an einem Nebenprojekt
$0 / Monat
- 1 Datenbank, 1 Kachelquelle
- Neuaufbau alle 24 Stunden
- 50.000 Kachelanfragen / Monat
- 100 Geofences, 100 getrackte Nutzer
Fügen Sie eine Datenbank-URL ein und erhalten Sie eine dynamische Vektorkachel-URL, die sich Sekunden nach einer Zeilenänderung aktualisiert. Machen Sie aus denselben Polygonen Geofences, die Ihnen melden, wann Personen ankommen.
Kostenlose Sandbox, keine Kreditkarte. Funktioniert mit RDS, Cloud SQL, Supabase, Neon, Crunchy Bridge oder Ihrem eigenen Server.
14/8235/5419 und 14/8236/5419 in 0,9 s neu gerendert. Die anderen 22 Kacheln blieben unverändert. Wir prüfen Verbindung, PostGIS-Version und Berechtigungen und sagen Ihnen, ob die URL über einen Pooler läuft, der keine Live-Updates übertragen kann.
Jede Tabelle mit Geometriespalte erscheint mit SRID, geschätzter Zeilenzahl und Spalten. Wählen Sie die Eigenschaften, die in die Kacheln gehören, und den Zoombereich.
Sie erhalten eine TileJSON-URL und ein z/x/y-Template mit einem öffentlichen Schlüssel, beschränkt auf die von Ihnen erlaubten Origins. Funktioniert überall, wo Vektorkacheln funktionieren.
import maplibregl from "maplibre-gl";
const map = new maplibregl.Map({
container: "map",
style: {
version: 8,
sources: {
parcels: {
type: "vector",
url: "https://tiles.mapsocket.com/t/acme/parcels.json?key=pk_live_…",
},
},
layers: [{
id: "parcels",
type: "fill",
source: "parcels",
"source-layer": "parcels",
paint: { "fill-color": "#2D6E9E", "fill-opacity": 0.3 },
}],
},
}); MapSocket hört Ihre Datenbank über Postgres LISTEN/NOTIFY ab. Ändert sich eine Zeile, werden nur die Kacheln neu geschrieben, die ihre alte oder neue Form enthielten. Eine Änderung an tausend Zeilen rendert jede betroffene Kachel genau einmal neu.
INSERT, UPDATE oder DELETE auf einer veröffentlichten Tabelle
Layer, Zeilen-ID, Operation und die alten Grenzen
Bursts werden pro Kachel entprellt und dedupliziert
Nur Kacheln, die die alte oder neue Geometrie berühren, auf jeder Zoomstufe
update_complete kommt per SSE; auch Webhooks werden ausgelöst
-- Generated for public.parcels; run once as the table owner
CREATE TRIGGER mapsocket_parcels
AFTER INSERT OR UPDATE OR DELETE ON public.parcels
FOR EACH ROW EXECUTE FUNCTION
mapsocket_notify_tile_update('parcels', 'id', 'geom'); const tiles = "https://tiles.mapsocket.com/t/acme/parcels/{z}/{x}/{y}.pbf?key=pk_live_…";
const events = new EventSource("https://tiles.mapsocket.com/t/acme/parcels/events?key=pk_live_…");
// Sent after tilefeed rewrites the affected tiles
events.addEventListener("update_complete", (e) => {
const { tiles_updated, affected_zooms } = JSON.parse(e.data);
map.getSource("parcels").setTiles([`${tiles}&_t=${Date.now()}`]);
}); Senden Sie einen Standort und erhalten Sie die Geofences, in denen er liegt, und was sich seit dem letzten geändert hat. Enter-, Exit- und Dwell-Events, Ortsbesuche, Länder- und Bundeslandwechsel sowie Ankünfte von Fahrten gehen signiert an Ihre Webhooks, damit Sie ihnen vertrauen können.
public.delivery_zones, wählen Sie ID- und Tag-Spalten, und die Polygone bleiben mit der Tabelle synchron. Punkte und Linien lassen sich per Puffer zu Zonen erweitern. tag und externalId, oder Import von GeoJSON bzw. einer CSV im Radar-Format. POST /v1/trackGET /v1/contextGET /v1/search/geofencesPOST /v1/tripsJeder Track benennt außerdem den Ort (aus OpenStreetMap), das Land und das Bundesland und prüft auf Betrug durch unmögliche Sprünge und gefälschte Standorte. Öffentliche Schlüssel können aus Browsern und Smartphones tracken; geheime Schlüssel verwalten Geofences und lesen Events. Ungenaue Positionen werden gespeichert, lösen aber keine Events aus.
curl https://api.mapsocket.com/v1/track \
-H "Authorization: pk_live_…" \
-H "Content-Type: application/json" \
-d '{"userId":"driver-118","latitude":40.7411,"longitude":-73.9897,"accuracy":12}' {
"user": {
"userId": "driver-118",
"geofenceIds": ["9c1e5a40-…"],
"lastSeenAt": "2026-11-04T14:02:11Z"
},
"events": [{
"type": "user.entered_geofence",
"userId": "driver-118",
"geofence": {
"tag": "loading-bay",
"externalId": "flatiron-02",
"description": "Flatiron loading bay"
},
"confidence": 3,
"createdAt": "2026-11-04T14:02:11Z"
}]
} Jedes Event geht zusätzlich an Ihre Webhooks, mit einem MapSocket-Signature-Header (HMAC-SHA256). Signatur prüfen
Wenn Sie Kacheln pro Anfrage aus parametrisierten SQL-Funktionen erzeugen müssen, sind pg_tileserv oder Martin die bessere Wahl. MapSocket ist für Tabellen, die sich im Lauf des Tages ändern, und Karten, die Schritt halten sollen.
| Ansatz | Wie Kacheln entstehen | Wenn sich eine Zeile ändert | Was Sie betreiben |
|---|---|---|---|
| pg_tileserv | Eine SQL-Abfrage pro Kachelanfrage, on the fly | Bei der nächsten Anfrage sichtbar, aber jede Anfrage trifft Ihre Datenbank | Ein Server neben Ihrer Datenbank |
| Martin | On the fly aus PostGIS oder aus MBTiles- und PMTiles-Dateien | Live im dynamischen Modus, zu Abfragekosten; Dateien brauchen einen Neuaufbau | Ein Server plus Ihr eigener Cache davor |
| Tippecanoe per Cronjob | Ein vollständiger Neuaufbau zu MBTiles oder PMTiles | Warten auf den nächsten Lauf, der alles neu baut | Ein Scheduler, Speicher und ein CDN |
| MapSocket | Vorgefertigte MBTiles, aus dem Cache ausgeliefert | Nur die betroffenen Kacheln werden neu gerendert, in Sekunden | Nichts. URL einfügen. |
Sie geben uns einen Connection-String, daher hier genau, was wir damit tun.
Eine Rolle, die die veröffentlichten Tabellen per SELECT lesen kann. Wir empfehlen eine eigene Read-only-Rolle; das Dashboard liefert Ihnen die genauen CREATE ROLE- und GRANT-Anweisungen. Für Live-Updates führen Sie (nicht wir) auf jeder Tabelle eine kleine Trigger-Funktion aus, wofür einmalig Eigentümerrechte an der Tabelle nötig sind.
Mit AES-256-GCM verschlüsselt, bevor er unsere Datenbank erreicht, wobei der Schlüssel außerhalb davon liegt. Entschlüsselt wird er nur im Worker, der Ihre Kacheln erzeugt, und er wird im Dashboard oder in der API nie wieder angezeigt, nur Host, Datenbank und Benutzer.
Ja. Alle Verbindungen zu Ihrer Datenbank kommen von einer festen Gruppe von Egress-IPs pro Region, die im Dashboard neben jeder Verbindung aufgeführt sind. Tragen Sie sie in Ihre Security Group oder pg_hba.conf ein, und sonst muss nichts offen sein.
Wir verbinden uns standardmäßig mit sslmode=require und lehnen unverschlüsselte Verbindungen ab, sofern Sie das nicht ausdrücklich für ein privates Netzwerk abschalten.
Nein. Zeilen werden gelesen und direkt in Vektorkacheln kodiert; das Kachelarchiv (MBTiles) ist die einzige Kopie, die wir behalten. Löschen Sie eine Quelle, werden ihre Kacheln mit gelöscht. Geofences, die Sie aus einer Tabelle synchronisieren, werden als Geometrien plus die von Ihnen gewählten Spalten gespeichert.
Ja. Aktivieren Sie sie unter Einstellungen und Sicherheit: Scannen Sie einen QR-Code mit einer beliebigen Authenticator-App (Google Authenticator, 1Password, Authy, Microsoft Authenticator), danach brauchen Sie zur Anmeldung zusätzlich zum Passwort einen 6-stelligen Code. Sie erhalten zehn einmalige Wiederherstellungscodes, falls Sie Ihr Smartphone verlieren.
Sie zahlen für die Quellen, die Sie betreiben, und die Anfragen, die Sie ausliefern. Ihre Datenbank bleibt Ihre; wir rechnen nie nach Zeilen ab.
Zum Ausprobieren an einem Nebenprojekt
$0 / Monat
Für ein Produkt mit einer Karte darin
$29 / Monat
Für Teams, deren Daten sich den ganzen Tag bewegen
$149 / Monat
Dedizierte Worker, in Ihrer oder unserer Cloud
Sprechen wir
| Limit | Sandbox | Starter | Pro | Enterprise |
|---|---|---|---|---|
| Kachelquellen | 1 | 5 | 25 | Unbegrenzt |
| Datenbanken | 1 | 2 | 10 | Unbegrenzt |
| Kachelanfragen | 50k / Mon. | 1M / Mon. | 10M / Mon. | Individuell |
| Geofences | 100 | 5.000 | 100.000 | Unbegrenzt |
| Getrackte Nutzer | 100 / Mon. | 5k / Mon. | 50k / Mon. | Individuell |
| Georeferenzierte Karten | 1 | 10 | 100 | Individuell |
| Updates | Neuaufbau alle 24 Stunden | Live, Sekunden nach einem Schreibvorgang | Live, Sekunden nach einem Schreibvorgang | Live, Sekunden nach einem Schreibvorgang |
| Eigene Kachel-Domain | Nein | Nein | Ja | Ja |
Überschreiten Sie in einem bezahlten Tarif Ihr Kachellimit, werden weiter Kacheln ausgeliefert; wir informieren Sie per E-Mail, bevor sich etwas ändert. Die Sandbox pausiert bei Erreichen des Limits.
Ja, mit einer Einschränkung: Live-Updates nutzen Postgres LISTEN, was über Pooler im Transaction-Modus nicht funktioniert. Verwenden Sie den direkten Connection-String (Port 5432 bei Supabase, den Host ohne Pooling bei Neon). Wenn Sie nur eine gepoolte URL nutzen können, wählen Sie den Snapshot-Modus, und wir bauen nach Zeitplan neu.
In der Regel ein bis drei Sekunden vom COMMIT bis zur frischen Kachel. Benachrichtigungen werden zu kleinen Batches entprellt, sodass eine Massenänderung an 10.000 Zeilen jede betroffene Kachel einmal neu rendert statt 10.000-mal.
Alles, was Mapbox Vector Tiles und TileJSON liest: MapLibre GL, Mapbox GL, OpenLayers, Leaflet mit einem Vector-Tile-Plugin, deck.gl, QGIS.
Ja. MapSocket betreibt tilefeed, das unter MIT-Lizenz steht. Jede Quelle hat einen Button Export config, der Ihnen die tilefeed-TOML liefert, und Sie können die MBTiles oder ein PMTiles-Archiv jederzeit herunterladen.
Eine eindeutige userId, die im Monat mindestens einen /v1/track-Aufruf gesendet hat. Aufrufe von /v1/context und die Geofence-Suche zählen nicht dazu.
Die meisten haben innerhalb von fünf Minuten nach der Registrierung eine Live-Kachel-URL.