clone

an offline map explorer where each world, from a game map to a city's open data, ships as one .atlas file

feat: curate Redondo Beach

Dami committed dacc652
The second public proof city, and the enrichment example: Redondo
Beach's hub is parcel-grained -- its land-use layer carries the zoning
code on every polygon, so the zoning zones bucket by code and double as
the basemap's parcel texture, the first use of that role. General Plan
designations and council districts ride the zones, the district
boundary lines draw the accent, and the parks earn pins under a newly
vendored Maki glyph. Field names verified against the live services;
its zoning dataset is marked for report enrichment.
commit
dacc652f0846f103972313e65f43259ca97382c4
parent
0ae0dc4d945b8e4e9e6c8829d1ebfe5d969086b8
author
Dami <dami.etoile@gmail.com>
kind
feat risk score 1.1 of 3, Jev's estimate
2 files changed, +84 -1
Minternal/arcgismap/arcgismap.go81++++++++++++++++++++++++++++++-
Ainternal/icons/standard/maki/park.svg4+
M internal/arcgismap/arcgismap.go +80 -1
@@ -115,7 +115,86 @@ type City struct {
115115 // init function there adding to this map curates privately what this table116116 // curates publicly.117117 var Cities = map[string]City{118- "bend-or": bend,118+ "bend-or": bend,119+ "redondo-beach-ca": redondoBeach,120+}121+122+// redondoBeach is the City of Redondo Beach, California -- the enrichment123+// proof city, chosen because it is the one city the Zoneomics developer124+// sandbox answers for, and it publishes its own ArcGIS hub to be enriched.125+// Its land-use layer is parcel-grained and carries the zoning code on every126+// polygon, so the zoning zones bucket by code and double as the basemap's127+// parcel texture. Field names were verified against the live services.128+var redondoBeach = City{129+ Slug: "redondo-beach-ca",130+ Title: "Redondo Beach, California",131+ HubBase: "https://city-of-redondo-beach-gis-redondobeachgis.hub.arcgis.com",132+ MaxZoom: 6,133+ BBox: [4]float64{-118.4060, 33.8110, -118.3490, 33.8985},134+ Datasets: []Dataset{135+ {136+ Slug: "land-use", Title: "Zoning",137+ ItemID: "1d185d3b4bfd43eb9d78ff6c36d4062b", Layer: 3,138+ Geometry: "polygon",139+ Keep: []string{"OBJECTID", "ZONINGCODE", "LANDUSECODE", "GENERALPLANCODE", "ZONEOVERLAY"},140+ ZoneOf: func(f Fields) ZoneKey {141+ code := strings.TrimSpace(f["ZONINGCODE"])142+ if code == "" {143+ return ZoneKey{}144+ }145+ return ZoneKey{Key: slugify(code), Title: code}146+ },147+ Zoneomics: true,148+ Role: "parcel",149+ },150+ {151+ Slug: "general-plan", Title: "General Plan",152+ ItemID: "1d185d3b4bfd43eb9d78ff6c36d4062b", Layer: 6,153+ Geometry: "polygon",154+ Keep: []string{"OBJECTID", "GENERALPLAN", "ZONECLASS", "ZONEOVERLAY"},155+ ZoneOf: func(f Fields) ZoneKey {156+ code := strings.TrimSpace(f["GENERALPLAN"])157+ if code == "" {158+ return ZoneKey{}159+ }160+ return ZoneKey{Key: slugify(code), Title: code, Subtitle: "General Plan"}161+ },162+ },163+ {164+ Slug: "council-districts", Title: "Council Districts",165+ ItemID: "51e571c695ca451999bd7c53097f7bd6", Layer: 0,166+ Geometry: "polygon",167+ Keep: []string{"OBJECTID", "District", "CouncilMember"},168+ ZoneOf: func(f Fields) ZoneKey {169+ number := strings.TrimSpace(f["District"])170+ if number == "" {171+ return ZoneKey{}172+ }173+ return ZoneKey{Key: "district-" + slugify(number),174+ Title: "Council District " + number,175+ Subtitle: strings.TrimSpace(f["CouncilMember"])}176+ },177+ },178+ {179+ Slug: "district-lines", Title: "Council District Boundaries",180+ ItemID: "12d292cd5f4c49838c0c812427ec7f2b", Layer: 0,181+ Geometry: "line",182+ Keep: []string{"OBJECTID"},183+ Role: "boundary",184+ },185+ {186+ Slug: "parks", Title: "Parks & Recreation",187+ ItemID: "6bd956cbe6134485a85a20b225a0e5f4", Layer: 1,188+ Geometry: "point",189+ Keep: []string{"OBJECTID", "name", "address", "facility_size", "web_desc"},190+ Group: "Recreation",191+ Icon: "maki/park",192+ TitleOf: func(f Fields) string { return f["name"] },193+ Describe: func(f Fields) string {194+ return join(" · ", f["address"], f["facility_size"], f["web_desc"])195+ },196+ },197+ },119198 }120199 121200 // bend is the City of Bend, Oregon -- the curated proof city, chosen for a
A internal/icons/standard/maki/park.svg +4 -0