Adding plants

This commit is contained in:
2026-06-29 13:52:20 -05:00
parent fe68874b92
commit 1354368ddc
3 changed files with 102 additions and 11 deletions
+33
View File
@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
<title id="title">Flower</title>
<desc id="desc">Abstract flower with paired leaves and a dahlia-like bloom.</desc>
<defs>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="1.5" stdDeviation="1.2" flood-color="#1d2d16" flood-opacity="0.28" />
</filter>
</defs>
<g fill="none" stroke-linecap="round" stroke-linejoin="round" filter="url(#shadow)">
<path d="M32 58 C32 47 32 37 32 26" stroke="#315f2b" stroke-width="3" />
<path d="M31 46 C23 38 15 37 9 42 C17 47 24 49 31 46" fill="#5f8d39" stroke="#315f2b" stroke-width="1.8" />
<path d="M33 43 C42 35 50 35 56 41 C48 47 40 48 33 43" fill="#6f9d42" stroke="#315f2b" stroke-width="1.8" />
<path d="M31 54 C24 50 18 51 13 56 C20 59 26 59 31 54" fill="#547f34" stroke="#315f2b" stroke-width="1.5" />
<path d="M33 52 C40 48 47 49 52 55 C45 58 38 58 33 52" fill="#6a963d" stroke="#315f2b" stroke-width="1.5" />
<g fill="#c556a0" stroke="#742c5c" stroke-width="1.15">
<path d="M32 27 C28 20 29 13 32 7 C36 13 36 20 32 27" />
<path d="M32 27 C27 21 22 17 16 16 C18 23 24 27 32 27" />
<path d="M32 27 C25 25 19 27 14 32 C21 35 27 33 32 27" />
<path d="M32 27 C27 31 24 37 24 44 C30 41 33 35 32 27" />
<path d="M32 27 C36 33 42 36 49 36 C46 30 40 27 32 27" />
<path d="M32 27 C38 25 43 20 46 14 C39 15 34 20 32 27" />
</g>
<g fill="#df79bd" stroke="#8f3b75" stroke-width="1">
<path d="M32 27 C30 22 31 17 33 12 C36 17 35 23 32 27" />
<path d="M32 27 C28 24 25 21 21 20 C22 25 27 28 32 27" />
<path d="M32 27 C28 28 24 31 22 35 C27 36 31 33 32 27" />
<path d="M32 27 C35 31 39 33 44 33 C42 28 37 26 32 27" />
<path d="M32 27 C35 23 38 19 42 17 C41 22 37 26 32 27" />
</g>
<circle cx="32" cy="27" r="4.4" fill="#7a2d63" stroke="#5f214d" stroke-width="1.1" />
<circle cx="32" cy="27" r="2.2" fill="#f0b44c" stroke="none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+67 -10
View File
@@ -1,4 +1,4 @@
import { Daylily, defineGroup, FlowerBed, Tree } from "../lib/yard-features.js"; import { Daylily, defineGroup, Flower, FlowerBed, Tree } from "../lib/yard-features.js";
import * as geo from "../lib/geometry.js"; import * as geo from "../lib/geometry.js";
import { lotCorner } from "./anchors.js"; import { lotCorner } from "./anchors.js";
@@ -48,12 +48,42 @@ const flowerBeds = [
]; ];
const daylilies = [ const daylilies = [
new Daylily("Not sure", {
gardenOrgId: "4765",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(2))),
new Daylily("Wayside King Royale", {
gardenOrgId: "5090",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(4))),
new Daylily("Joan Derifield", { new Daylily("Joan Derifield", {
gardenOrgId: "4765", gardenOrgId: "4765",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(12))), }).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(6))),
new Daylily("Predatory Flamingo", { new Daylily("Predatory Flamingo", {
gardenOrgId: "61201", gardenOrgId: "61201",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(14))), }).add(geo.offset(lotCorner), geo.east(geo.ft(112)), geo.south(geo.ft(8))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(24))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(26))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(28))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(30))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(32))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(34))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(36))),
new Daylily("Orange Daylily", {
gardenOrgId: "48484",
}).add(geo.offset(lotCorner), geo.east(geo.ft(142)), geo.south(geo.ft(38))),
new Daylily("You Had Me at Hello", { new Daylily("You Had Me at Hello", {
gardenOrgId: "235117", gardenOrgId: "235117",
}).add(geo.offset(lotCorner), geo.east(geo.ft(28)), geo.south(geo.ft(45))), }).add(geo.offset(lotCorner), geo.east(geo.ft(28)), geo.south(geo.ft(45))),
@@ -63,6 +93,33 @@ const daylilies = [
new Daylily("Daylily").add(geo.offset(lotCorner), geo.east(geo.ft(31)), geo.south(geo.ft(47))), new Daylily("Daylily").add(geo.offset(lotCorner), geo.east(geo.ft(31)), geo.south(geo.ft(47))),
]; ];
const flowers = [
new Flower("Purple Coneflower", {
gardenOrgId: "71445",
}).add(geo.offset(lotCorner), geo.east(geo.ft(111.5)), geo.south(geo.ft(15))),
new Flower("Purple Coneflower", {
gardenOrgId: "71445",
}).add(geo.offset(lotCorner), geo.east(geo.ft(111.5)), geo.south(geo.ft(17))),
new Flower("Purple Coneflower", {
gardenOrgId: "71445",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112.5)), geo.south(geo.ft(16))),
new Flower("Purple Coneflower", {
gardenOrgId: "71445",
}).add(geo.offset(lotCorner), geo.east(geo.ft(112.5)), geo.south(geo.ft(14))),
new Flower("Tiny Tortuga Turtlehead", {
gardenOrgId: "697986",
}).add(geo.offset(lotCorner), geo.east(geo.ft(3)), geo.south(geo.ft(8))),
new Flower("Tiny Tortuga Turtlehead", {
gardenOrgId: "697986",
}).add(geo.offset(lotCorner), geo.east(geo.ft(3)), geo.south(geo.ft(17))),
new Flower("Peony", {
gardenOrgId: "697986",
}).add(geo.offset(lotCorner), geo.east(geo.ft(19)), geo.south(geo.ft(1.5))),
new Flower("Peony", {
gardenOrgId: "697986",
}).add(geo.offset(lotCorner), geo.east(geo.ft(75)), geo.south(geo.ft(2))),
];
const trees = [ const trees = [
new Tree("Northern Empress Japanese Elm", { new Tree("Northern Empress Japanese Elm", {
species: "Northern Empress Japanese Elm", species: "Northern Empress Japanese Elm",
@@ -140,13 +197,13 @@ const trees = [
canopyDiameterMeters: 1.5, canopyDiameterMeters: 1.5,
heightMeters: 2.5, heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(geo.lngLat(-100.8987812086838, 46.82671120797719)), }).inGroup(juniperTreesGroup).add(geo.lngLat(-100.8987812086838, 46.82671120797719)),
new Tree("Offset Test Tree", { new Tree("Black Currant", {
species: "Test tree", species: "Black Currant",
canopyDiameterMeters: 4, canopyDiameterMeters: 2,
heightMeters: 5, heightMeters: 2,
note: "70 feet east of top-left lot corner using assumedNorth", gardenOrgId: "87767",
}).add(geo.offset(lotCorner), geo.east(geo.ft(70))), }).add(geo.offset(lotCorner), geo.east(geo.ft(107)), geo.south(geo.ft(3))),
]; ];
export const plantFeatures = [...flowerBeds, ...daylilies, ...trees]; export const plantFeatures = [...flowerBeds, ...daylilies, ...flowers, ...trees];
export const plantGroups = [juniperTreesGroup]; export const plantGroups = [juniperTreesGroup];
+2 -1
View File
@@ -165,9 +165,10 @@ export const featureTypes = {
style: { style: {
color: "#9c3f74", color: "#9c3f74",
weight: 2, weight: 2,
radius: 5,
fillColor: "#d979aa", fillColor: "#d979aa",
fillOpacity: 0.85, fillOpacity: 0.85,
iconUrl: "./src/assets/icons/flower.svg",
iconDiameterMeters: 0.4,
}, },
}, },
daylily: { daylily: {