Skip to content

Global GIS Settings~

The /geo/setting page configures system-wide GIS defaults. Settings are stored as a singleton record in the geo_setting table.


Default Start Location~

The default location shown when the map widget and design tool first open.

Field Default Description
Latitude 37.5665 Center of Seoul
Longitude 126.9780 Center of Seoul
Zoom Level 12 Initial zoom (smaller = wider area, larger = closer in)

Move the map to the location and zoom you want, then click Get Location on the Current View row to fill the three fields from the current map view.


Design Theme Colors~

Per-layer colors used in the design tool and map widget.

Layer Meaning
Site Site boundary
Zone Zone boundary
Facility Facility building
Equipment Equipment
Device AoT device marker
Panel Background Property panel background

Each row has a color picker. A color you have never saved shows the colour currently in use (the global default) and stays unset — it is only saved once you change it. One Panel Opacity slider (0–100%, in steps of 5) applies to the property panel background.


Map Behavior~

Zoom Settings~

Field Default Description
Max Zoom 25 Maximum map zoom level (accepts 1–30)
Equipment Hide Zoom 15 Equipment items are hidden below this zoom level (accepts 1–25)

Equipment Hide Zoom prevents large numbers of equipment items from cluttering the map when zoomed out. When zoom drops below 15, pipes, connection points, sprinkler coverage areas and 3D facility models are automatically hidden. AoT device markers are not affected — they stay visible at every zoom level.

Zoom Method~

Field Default Description
Digital Zoom On Continue CSS-scale zoom beyond tile resolution
Smooth Zoom On Smooth interpolation during pinch zoom

Performance & Rendering~

Field Default Description
Tile Fade Animation On Fade-in animation when tiles load
Serve MapLibre Locally On Serve the MapLibre GL library from local files instead of the CDN. Turn it off to load the library from the CDN
Prefer Canvas Rendering Off Prefer Canvas renderer over SVG (Leaflet mode only)

Polygon Display Limits~

Upper counts kept with the map settings. They are stored and can be edited here, but the current map drawing does not apply them yet.

Field Default
Max Site Polygons 1000
Max Zone Polygons 1000
Max Device Polygons 1000

Unit Settings~

Select the length unit for facility engineering calculations and dimension inputs.

Code Display
m Meters (default)
cm Centimeters
mm Millimeters
ft Feet
in Inches

API~

GET /api/geo/settings

Returns the current global settings as JSON. It requires the Edit Settings permission; without it the request is refused.

The response is {"ok": true, "saved_state": { ... }, "geo_layers": [...], "search_inputs": [...], "search_provider": "..."}. saved_state carries the stored settings — note that the default start zoom comes back as zoom — along with the saved map provider keys.

POST /api/geo/settings
Content-Type: application/json

{
  "default_lat": 37.5665,
  "default_lng": 126.9780,
  "default_zoom": 12,
  "max_zoom": 25,
  "equipment_cull_zoom": 15,
  "digital_zoom": true,
  "smooth_zoom": true,
  "tile_fade_animation": true,
  "maplibre_local_serving": false,
  "prefer_canvas": false,
  "search_provider": "",
  "max_polygons_site": 1000,
  "max_polygons_zone": 1000,
  "max_polygons_device": 1000,
  "theme_site": "#2563eb",
  "theme_zone": "#16a34a",
  "theme_facility": "#ea580c",
  "theme_equipment": "#6b7280",
  "theme_device": "#dc2626",
  "theme_panel_bg": "#ffffff",
  "theme_panel_opacity": 90
}

Every key is optional — an omitted key keeps its stored value, and keys that are not on the accepted list are silently ignored. Form-encoded bodies are accepted as well as JSON. Theme values are sent as flat theme_* keys, not as a nested object; the design drawer's visibility toggles are saved through the same theme_* family. An empty search_provider means "follow map settings". A successful save answers {"ok": true, "message": "Settings Saved"}, and saving also requires the Edit Settings permission.

The length unit is not part of this endpoint. It has its own:

GET /api/geo/settings/length_unit
PUT /api/geo/settings/length_unit
Content-Type: application/json

{ "length_unit": "m" }

GET returns the current unit together with the list of supported units; PUT refuses any value outside that list.