[object Object]

← back to La Socrata Ingester

GIS land use via hosted LADCP FeatureServer (56,901 features, reliable)

4862c20d3b4008967d3754b0e54e91fe9d8459eb · 2026-08-11 11:53:23 -0700 · steve

Replaces the flaky NavigateLA gateway for land use. Zoning stays partial (75%,
gateway-capped); complete LA City zoning is fragmented across ~15 per-community
Zone_Builder_Database services (documented follow-up).

Files touched

Diff

commit 4862c20d3b4008967d3754b0e54e91fe9d8459eb
Author: steve <steve@designerwallcoverings.com>
Date:   Tue Aug 11 11:53:23 2026 -0700

    GIS land use via hosted LADCP FeatureServer (56,901 features, reliable)
    
    Replaces the flaky NavigateLA gateway for land use. Zoning stays partial (75%,
    gateway-capped); complete LA City zoning is fragmented across ~15 per-community
    Zone_Builder_Database services (documented follow-up).
---
 src/sources.js | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/sources.js b/src/sources.js
index a60cc8f..567e504 100644
--- a/src/sources.js
+++ b/src/sources.js
@@ -199,7 +199,15 @@ Object.assign(SOURCES, {
   // Zoning + land use (~50–59k). NavigateLA gateway 502s on sorted geometry -> use
   // offset paging with NO orderByFields (noOrder) + small pages.
   gis_zoning:  gisSrc('zoning',  71, ['ZONE_CMPLT', 'ZONE_CLASS'], { pageSize: 2000, noOrder: true }),
-  gis_landuse: gisSrc('landuse', 70, ['GPLU_Legend', 'GPLU'],     { pageSize: 2000, noOrder: true }),
+  // Land use: hosted LADCP FeatureServer (reliable) instead of the flaky NavigateLA
+  // gateway. Fields are lowercase here (objectid/gplu/gplu_desc).
+  gis_landuse: {
+    platform: 'arcgis',
+    endpoint: 'https://services1.arcgis.com/tzwalEyxl2rpamKs/arcgis/rest/services/GeneralPlanLandUse_6a318/FeatureServer/0',
+    geometry: true, paginate: 'oid', oidField: 'objectid',
+    table: 'la_gis_features', conflict: ['layer', 'oid'],
+    map: (r) => ({ layer: 'landuse', oid: r.objectid, name: str(r.gplu_desc || r.gplu), geom: r.__geometry }),
+  },
   // Boundaries (small).
   gis_council_districts:     gisSrc('council_district',    418, ['District_Name', 'NAME', 'District'], { pageSize: 20000 }),
   gis_neighborhood_councils: gisSrc('neighborhood_council', 439, ['NAME'], { pageSize: 20000 }),

← 0ccaea8 GIS: parcel polygons via hosted FeatureServer (421,684 w/ ge  ·  back to La Socrata Ingester  ·  Viewer: List/Grid/Map views + color-ID + shareable ?view=&co ff21d5c →