diff --git a/src/layers/parcels/colors.ts b/src/layers/parcels/colors.ts deleted file mode 100644 index e571031e..00000000 --- a/src/layers/parcels/colors.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { rangeDomainProperties } from "@wsdot/land-use-codes"; - -/** - * Colors from https://colorbrewer2.org/?type=diverging&scheme=RdYlBu&n=8 - */ -export const colors = [ - "#b35806", - "#e08214", - "#fdb863", - "#fee0b6", - "#d8daeb", - "#b2abd2", - "#8073ac", - "#542788", -] as const; - -export const landUseCategoryToColorMapping = new Map( - rangeDomainProperties.map((p, i) => [p.name, colors[i]] as const), -); diff --git a/src/layers/parcels/index.ts b/src/layers/parcels/index.ts index 3c057f06..30ecce4c 100644 --- a/src/layers/parcels/index.ts +++ b/src/layers/parcels/index.ts @@ -1,46 +1,20 @@ -const arcGisOnlineId = "9c7f4cd9a1354d8db79c471be957a0d2"; -const parcelIdField = "PARCEL_ID_NR"; +const arcGisOnlineId = "a2050b09baff493aa4ad7848ba2fac00"; -const [ - { default: FeatureLayer }, - { default: PortalItem }, - { default: LabelClass }, - { labelSymbol }, - { renderer }, -] = await Promise.all([ - import("@arcgis/core/layers/FeatureLayer"), +const [{ default: TileLayer }, { default: PortalItem }] = await Promise.all([ + import("@arcgis/core/layers/TileLayer"), import("@arcgis/core/portal/PortalItem"), - import("@arcgis/core/layers/support/LabelClass"), - import("./label"), - import("./renderer"), ]); /** * Parcels layer * @see {@link https://wsdot.maps.arcgis.com/home/item.html?id=9c7f4cd9a1354d8db79c471be957a0d2} */ -export const parcelsLayer = new FeatureLayer({ +export const parcelsLayer = new TileLayer({ id: "parcels", - title: "Parcels From geo.wa.gov", - minScale: 9027.977411, - labelsVisible: true, - labelingInfo: [ - new LabelClass({ - labelExpressionInfo: { - expression: `$feature.${parcelIdField}`, - title: "Parcel ID", - }, - minScale: 1128.497176, - symbol: labelSymbol, - useCodedValues: true, - }), - ], - displayField: parcelIdField, - outFields: ["*"], visible: false, portalItem: new PortalItem({ id: arcGisOnlineId, }), - popupEnabled: false, - renderer, + listMode: "hide-children", + legendEnabled: false, }); diff --git a/src/layers/parcels/label.ts b/src/layers/parcels/label.ts deleted file mode 100644 index c3a37028..00000000 --- a/src/layers/parcels/label.ts +++ /dev/null @@ -1,13 +0,0 @@ -import TextSymbol from "@arcgis/core/symbols/TextSymbol"; - -const outlineColor = "white"; - -export const labelSymbol = new TextSymbol({ - color: outlineColor, - haloColor: "black", - haloSize: 1, - font: { - size: 10, - weight: "normal", - }, -}); diff --git a/src/layers/parcels/renderer.ts b/src/layers/parcels/renderer.ts deleted file mode 100644 index 3a8ce991..00000000 --- a/src/layers/parcels/renderer.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { landUseCategoryToColorMapping } from "./colors"; -import Color from "@arcgis/core/Color"; -import ClassBreaksRenderer from "@arcgis/core/renderers/ClassBreaksRenderer"; -import ClassBreakInfo from "@arcgis/core/renderers/support/ClassBreakInfo"; -import SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol"; -import { rangeDomainProperties } from "@wsdot/land-use-codes"; - -const defaultSymbol = new SimpleFillSymbol({ - outline: { - color: "black", - width: 2, - }, -}); - -type RangeDomainPropertiesItem = (typeof rangeDomainProperties)[number]; - -const createClassBreak = ({ - name: label, - minValue, - maxValue, -}: RangeDomainPropertiesItem): ClassBreakInfo => { - const symbol = defaultSymbol.clone(); - symbol.outline.color = new Color(landUseCategoryToColorMapping.get(label)); - return new ClassBreakInfo({ label, minValue, maxValue, symbol }); -}; -const classBreaks = rangeDomainProperties.map(createClassBreak); - -export const renderer = new ClassBreaksRenderer({ - defaultSymbol, - defaultLabel: "Unknown", - field: "LANDUSE_CD", - classBreakInfos: classBreaks, -}); - -if (import.meta.hot) { - // Update the colors in the class breaks when "./colors" is modified. - import.meta.hot.accept("./colors", (mod) => { - if (mod) { - console.log("hot module replacement", mod); - } - - renderer.classBreakInfos = rangeDomainProperties.map(createClassBreak); - }); -}