Skip to content

Commit

Permalink
Refactor amenity layer on both pages
Browse files Browse the repository at this point in the history
  • Loading branch information
dabreegster committed May 3, 2024
1 parent 5e26350 commit b98b48f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 56 deletions.
25 changes: 25 additions & 0 deletions web/src/AmenityLayer.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<script lang="ts">
import { notNull } from "./common";
import { CircleLayer, hoverStateFilter } from "svelte-maplibre";
import { PropertiesTable, Popup } from "svelte-utils";
</script>

<CircleLayer
id="amenities"
paint={{
"circle-radius": 5,
"circle-opacity": 0,
"circle-stroke-width": 2,
"circle-stroke-color": hoverStateFilter("orange", "red"),
}}
manageHoverState
filter={["has", "amenity_kind"]}
on:click={(e) =>
window.open(notNull(e.detail.features[0].properties).osm_id, "_blank")}
hoverCursor="pointer"
eventsIfTopMost
>
<Popup openOn="hover" let:props>
<PropertiesTable properties={props} />
</Popup>
</CircleLayer>
29 changes: 3 additions & 26 deletions web/src/DebugMode.svelte
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
<script lang="ts">
import {
CircleLayer,
GeoJSON,
hoverStateFilter,
LineLayer,
} from "svelte-maplibre";
import { GeoJSON, hoverStateFilter, LineLayer } from "svelte-maplibre";
import { notNull, PickTravelMode } from "./common";
import SplitComponent from "./SplitComponent.svelte";
import AmenityList from "./AmenityList.svelte";
import AmenityLayer from "./AmenityLayer.svelte";
import { PropertiesTable, Popup } from "svelte-utils";
import { mode, model, type TravelMode, filterForMode } from "./stores";
Expand Down Expand Up @@ -49,26 +45,7 @@
</Popup>
</LineLayer>

<CircleLayer
id="amenities"
paint={{
"circle-radius": 10,
"circle-color": hoverStateFilter("cyan", "red"),
}}
manageHoverState
filter={["has", "amenity_kind"]}
on:click={(e) =>
window.open(
notNull(e.detail.features[0].properties).osm_id,
"_blank",
)}
hoverCursor="pointer"
eventsIfTopMost
>
<Popup openOn="hover" let:props>
<PropertiesTable properties={props} />
</Popup>
</CircleLayer>
<AmenityLayer />
</GeoJSON>
</div>
</SplitComponent>
34 changes: 4 additions & 30 deletions web/src/IsochroneMode.svelte
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
<script lang="ts">
import AmenityLayer from "./AmenityLayer.svelte";
import AmenityList from "./AmenityList.svelte";
import { colorScale } from "./colors";
import type { FeatureCollection } from "geojson";
import {
GeoJSON,
CircleLayer,
hoverStateFilter,
LineLayer,
Marker,
} from "svelte-maplibre";
import { GeoJSON, LineLayer, Marker } from "svelte-maplibre";
import SplitComponent from "./SplitComponent.svelte";
import { mode, model, type TravelMode, filterForMode } from "./stores";
import { makeColorRamp, PickTravelMode, notNull } from "./common";
import { PropertiesTable, SequentialLegend, Popup } from "svelte-utils";
import { SequentialLegend, Popup } from "svelte-utils";
let travelMode: TravelMode = "foot";
Expand Down Expand Up @@ -106,28 +101,7 @@
</Popup>
</LineLayer>

<CircleLayer
id="amenities"
paint={{
"circle-radius": 5,
"circle-opacity": 0,
"circle-stroke-width": 2,
"circle-stroke-color": hoverStateFilter("orange", "red"),
}}
manageHoverState
filter={["has", "amenity_kind"]}
on:click={(e) =>
window.open(
notNull(e.detail.features[0].properties).osm_id,
"_blank",
)}
hoverCursor="pointer"
eventsIfTopMost
>
<Popup openOn="hover" let:props>
<PropertiesTable properties={props} />
</Popup>
</CircleLayer>
<AmenityLayer />
</GeoJSON>
{/if}
</div>
Expand Down

0 comments on commit b98b48f

Please sign in to comment.