Distance mode: click two or more points. Double-click or Finish to complete.
Tools apply to the active layer and selected table rows where selection is relevant.
Workspace settings
When enabled, LalGeo reopens your last project after refresh. Side panels still start closed until you open them.
Time zone
New features store the selected time zone with the project and each feature date.
Basemap
Satellite and hybrid use Apple Maps imagery where available.
Quick actions
Choose which frequently used actions appear on the right side of the menu bar.
Start a new LalGeo project in the browser or import an existing one.
Cloud Workspace
Manage projects, layers, imports, and optional Dropbox sync from one place.
Import a LalGeo project from file, Dropbox, or existing survey export.
Add GIS data to the open project. If no project is open, LalGeo creates one from the imported file.
GeoJSON, JSON GeoJSON, KML, KMZ, GPX, CSV, LalGeo .lal packages, shapefiles, and API endpoints.
For shapefiles, upload a .zip package or select the matching .shp, .dbf, .shx, .prj, and .cpg files together.
Paste a public endpoint that returns GeoJSON, JSON rows, or CSV. The endpoint must allow browser access.
GIS files become map layers with attributes. Existing projects keep their current layers and receive the imported layer. LalGeo project packages open as projects.
Search the map documentation or ask a question about a tool.
This is a sample map project for first-time visitors. It has multiple GeoJSON-style layers using Calgary open-data sources for someone visiting Canada, plus U.S. open-data examples for someone planning outside Canada.
Start a new LalGeo project in the browser and open it directly in the editor.
Refresh the page or check the MapKit configuration for this domain.
Click Add New, then click on the map to place your first feature.
Update the active layer.
Import GeoJSON, CSV, KML, GPX, shapefile zips, LalGeo packages, or folders. To change map draw order, open Layers and drag the handle or use ↑ / ↓.
Calculate values for selected or visible records.
Use a Python-style expression. Examples: index + 1, "ASSET-" + str(index + 1), round(lat, 6), row["Name"].upper().