almost perfect pathd

This commit is contained in:
2025-12-29 23:14:58 -05:00
parent 984c8e8169
commit 7931d42605
8 changed files with 927 additions and 1 deletions

105
src/lib/states/connecticut.ts Executable file
View File

@@ -0,0 +1,105 @@
// src/lib/states/connecticut.ts
export interface NewEnglandState {
id: string;
name: string;
slug: string;
image: string;
pathD: string;
fill: string;
hoverFill: string;
}
export const connecticutCounties: NewEnglandState[] = [
{
id: 'fairfield',
name: 'Fairfield County',
slug: 'fairfield',
image: '/images/counties/ct/fairfield.png',
pathD: "M 776.1 12.71 793.94 13.63 902.92 15.76 903.51 24.54 904.53 69.52 904.84 83.14 905.65 118.93 905.65 119.47 906.23 137.24 906.24 138.18 907.54 184.57 907.54 184.67 907.63 232.28 838 235.22 792.97 225.41 775.53 221.43 774.63 221.3 768.46 219.95 754.55 217.86 752.8 222.37 740.56 211.87 718.98 191.09 718.31 190.51 753.32 168.36 753.08 168.18 749.85 122.43 727.49 122.27 727.8 52.78 755.28 52.13 766.69 52.28 767.07 52.32 777.33 52.33 776.1 12.71 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'hartford',
name: 'Hartford County',
slug: 'hartford',
image: '/images/counties/ct/hartford.png',
pathD: "M 502.69 266.67 421.01 279.09 405.49 232.52 399.06 191.47 393.29 156.16 393.18 156 393.13 154.85 391.49 144.58 391.32 143.15 419.89 138.5 438.01 73.4 445.95 44.32 386.02 48 394.77 7.11 394.77 6.82 455.76 7.76 455.81 7.76 476.88 8.44 475.53 30.47 493.19 27.9 496.56 27.41 496.81 24.75 500.17 17.29 500.46 17.25 501.15 8.61 518.69 8.38 526.35 8.28 604.89 9.51 604.94 10.12 608.87 37.99 609.21 41.62 611.82 58.81 607.47 59.31 603.15 60 603.03 61.36 601.47 102.67 623.94 172.83 646.35 253.79 643.57 260.09 622.75 263.86 590.15 230.78 553.86 236.08 554.99 232.18 518.52 252.38 511.31 257.17 502.37 259.02 502.69 266.67 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'litchfield',
name: 'Litchfield County',
slug: 'litchfield',
image: '/images/counties/ct/litchfield.png',
pathD: "M 267.86 328.51 266.85 329.3 261 328.12 258.98 326.35 212.76 315.89 185.22 217.77 183.77 217.38 183.45 217.38 181.92 217.72 181.4 217.68 180.79 217.29 183.86 165.43 186.03 128.71 186.06 128.42 193.47 1 274.61 2.5 275.16 2.53 301.26 3.66 301.79 3.7 344.91 5.35 376.05 6.54 394.77 6.82 394.77 7.11 386.02 48 445.95 44.32 438.01 73.4 419.89 138.5 391.32 143.15 391.49 144.58 393.13 154.85 393.18 156 393.29 156.16 399.06 191.47 405.49 232.52 396.75 238.72 389.42 239.55 390.6 246.87 383.24 246.25 374.04 251.01 337.44 278.52 329.18 278.93 332.94 302.42 264.32 308.09 260.86 319.69 267.86 328.51 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'middlesex',
name: 'Middlesex County',
slug: 'middlesex',
image: '/images/counties/ct/middlesex.png',
pathD: "M 675.44 434.29 672.42 435.78 672.66 440.12 656.44 444.54 651.37 435.37 648.33 435.25 628.98 434.97 620.31 439.89 614.78 439.45 608.95 442.26 605.97 445.49 600.91 444.84 599.79 442.41 596.39 443.07 594.77 444.04 593.3 447.67 592.87 447.98 533.58 348.17 531.98 348.17 521.12 350.61 505.23 354.06 510.38 319.22 506.41 320.49 505.81 312.3 502.69 266.67 502.37 259.02 511.31 257.17 518.52 252.38 554.99 232.18 553.86 236.08 590.15 230.78 622.75 263.86 637.88 297.21 683.24 300.83 690.56 346.77 636.64 353.67 675.44 434.29 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'newhaven',
name: 'New Haven County',
slug: 'newhaven',
image: '/images/counties/ct/newhaven.png',
pathD: "M 405.49 232.52 421.01 279.09 502.69 266.67 505.81 312.3 506.41 320.49 510.38 319.22 505.23 354.06 521.12 350.61 531.98 348.17 533.58 348.17 592.87 447.98 589.06 450.74 588.89 450.86 579.04 441.21 578.86 441.04 578.84 441.01 573.71 439 572.93 439.21 572.61 439.29 572.3 439.38 571.77 439.52 570.98 439.74 570.5 439.87 567.52 440.68 563.39 439.73 562.39 439.5 559.45 438.83 559.33 438.86 559.13 438.92 553.5 440.46 549.45 441.57 549.22 441.63 548.69 441.69 545.37 442.09 544.05 442.24 544.01 442.22 543.68 442.06 540.53 440.53 540.27 440.4 538.44 440.96 536.55 441.54 536.27 441.63 535.44 442.45 530.97 446.89 530.77 449.68 530.72 450.41 529.07 452.46 528.74 452.88 528.66 452.99 527.39 453.66 526.84 453.95 526.54 453.96 523.87 454.07 522.01 454.15 521.6 454.17 520.99 454.19 520.86 454.2 520.77 454.2 520.18 454.23 520.08 454.04 518.88 451.69 519.92 450.57 519.39 448.81 515.2 446.03 510.83 448.49 501.73 441.68 500.46 441.68 488.4 442.86 474.69 449.88 474.42 448.87 471.26 447.36 462.48 447.4 461.45 448.04 459.83 452.4 456.77 453.77 448.31 455.28 442.43 454.66 440.17 453.45 438.68 452.65 438.3 452.09 439.23 449.57 439.33 449.52 442.72 447.67 442.73 447.64 443.1 445.6 442.04 443.33 439.19 437.26 437.16 432.92 437.06 432.71 433.43 433.21 433.34 433.28 432.07 434.32 431.82 439.07 431.8 439.51 431.74 440.56 427.1 444.91 426.43 445.53 425.52 446.38 416.54 449.5 415.43 449.89 414.71 450.14 414.41 450.24 405.28 459.33 404.72 459.89 369.91 422.6 366.75 420.02 365.79 418.85 365.24 416.66 362 415.04 360.2 412.37 349.76 405.12 341.22 394.48 336.38 385.23 330.62 376.18 325.53 376.32 321.36 371.77 319.39 368.64 320.69 363.59 311.09 355.6 267.86 328.51 260.86 319.69 264.32 308.09 332.94 302.42 329.18 278.93 337.44 278.52 374.04 251.01 383.24 246.25 390.6 246.87 389.42 239.55 396.75 238.72 405.49 232.52 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'newlondon',
name: 'New London County',
slug: 'newlondon',
image: '/images/counties/ct/newlondon.png',
pathD: "M 907.63 232.28 907.67 256.54 907.67 256.57 904.17 357.64 904.17 357.75 895.46 356.13 886.52 360.33 885.29 361.6 884.91 363.85 885.47 369.73 889.13 375.8 889.9 383.44 890.05 398.15 889.51 400.08 886.46 403.73 878.14 410.61 874.49 405.83 866.89 402.76 854.1 405.11 851.84 403.82 851.34 403.49 845.87 401.9 841.93 401.99 837.26 406.43 831.29 409.42 827.71 406.36 826.56 406.43 824.05 411.63 809.86 413.73 783.53 412.16 779.34 415.22 777.08 419.24 772.04 423.66 762.61 423.49 751.11 417.41 745.91 413.3 744.36 410.56 741.62 409.72 738.72 410.16 734.35 414.37 733.67 415.77 733.25 423.66 729.51 427.99 724.31 423.69 720 422.92 714.69 423.44 713.12 423.93 713.7 426.3 713.36 428.75 709.08 432.71 685.41 435.59 681.28 435.21 678.63 432.72 675.44 434.29 636.64 353.67 690.56 346.77 683.24 300.83 637.88 297.21 622.75 263.86 643.57 260.09 646.35 253.79 718.31 190.51 718.98 191.09 740.56 211.87 752.8 222.37 754.55 217.86 768.46 219.95 774.63 221.3 775.53 221.43 792.97 225.41 838 235.22 907.63 232.28 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'tolland',
name: 'Tolland County',
slug: 'tolland',
image: '/images/counties/ct/tolland.png',
pathD: "M 776.1 12.71 777.33 52.33 767.07 52.32 766.69 52.28 755.28 52.13 727.8 52.78 727.49 122.27 749.85 122.43 753.08 168.18 753.32 168.36 718.31 190.51 646.35 253.79 623.94 172.83 601.47 102.67 603.03 61.36 603.15 60 607.47 59.31 611.82 58.81 609.21 41.62 608.87 37.99 604.94 10.12 604.89 9.51 651.9 10.25 735.44 11.57 761.98 11.98 762 11.98 776.1 12.71 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
},
{
id: 'windham',
name: 'Windham County',
slug: 'windham',
image: '/images/counties/ct/windham.png',
pathD: "M 180.79 217.29 181.4 217.68 181.92 217.72 183.45 217.38 183.77 217.38 185.22 217.77 212.76 315.89 258.98 326.35 261 328.12 266.85 329.3 267.86 328.51 311.09 355.6 320.69 363.59 319.39 368.64 321.36 371.77 325.53 376.32 330.62 376.18 336.38 385.23 341.22 394.48 349.76 405.12 360.2 412.37 362 415.04 365.24 416.66 365.79 418.85 366.75 420.02 369.91 422.6 404.72 459.89 404.23 460.37 399.31 466.41 396.92 470.55 395.27 473.4 392.78 476.04 392.56 476.27 392.16 476.7 389.97 476.81 389.96 476.73 389.95 476.62 389.95 476.55 389.93 476.36 389.85 475.52 388.96 475.08 388.02 474.94 379.27 473.7 377.14 473.4 375.34 474.37 373.48 475.36 365.8 481.8 365.03 482.45 360.08 487.96 359.75 488.32 359.69 488.39 354.56 494.1 354.08 494.64 354.07 494.64 353.03 496.57 352.03 501.62 352.2 503.13 352.87 504.96 351.74 506.6 343.66 508.83 329.31 502.26 326.91 501.16 326.65 498.69 323.67 497.71 313.21 502.52 302.42 511.17 299.58 510.4 294.15 520.22 288.09 525.19 277.83 519.39 273.79 520.62 267.27 525.86 259.36 529.38 241.85 532.72 233.5 541.83 230.13 542.61 224.45 549.88 215.45 559.12 209.01 558.9 201.5 562.11 197.66 570.67 190.94 563.88 181.03 569.14 181.08 574.29 178.6 579.98 175.99 581.6 175.03 578.52 175.44 574.7 174.35 573.08 173.27 572.94 166.48 577.17 162.07 581.37 159.67 584.66 158.66 589.85 152.82 590.24 152.39 584.86 147.88 581.82 144.41 582.35 127.79 589.53 124.55 593.4 121.96 599 123.08 584.22 122.78 583.6 116.43 573.96 112.44 567.43 109.41 562.47 106.42 557.67 92.33 534.57 129.39 511.79 132.55 509.88 140.01 505.36 181.99 479.98 184.15 478.65 195.41 471.97 166.7 425.72 169.32 385.97 169.78 380.14 172.29 348.11 172.38 346.99 172.59 344.07 172.97 338.33 173 337.36 173.04 336.14 173.05 335.87 173.09 335.06 173.68 324.54 173.72 324.26 173.72 323.97 173.77 323.33 173.81 322.82 173.85 322.41 175.49 295.73 179.11 245.56 180.79 217.29 Z",
fill: 'fill-green-500',
hoverFill: 'fill-green-700'
}
];
export const mapViewBox: string = "890 20 95 155";
/**
* SVG transform string to apply to the group of states to straighten the map.
* Format: "rotate(angle cx cy)"
* - angle: degrees to rotate (negative for counter-clockwise)
* - cx: x-coordinate of the center of rotation
* - cy: y-coordinate of the center of rotation
*
* You'll need to experiment with these values.
* The approximate center of your current viewBox (890 65 85 110) is:
* cx = 890 + (85 / 2) = 932.5
* cy = 65 + (110 / 2) = 120
*/
// export const mapTransform: string = "rotate(-2 932.5 120)"; // Example: Rotate -2 degrees around center
export const mapTransform: string | undefined = undefined; // Start with no transform
// Try uncommenting the line above and adjusting the -2, 932.5, and 120 values.
// For example, if it's tilted 5 degrees clockwise, try "rotate(-5 932.5 120)"
// If it's tilted 3 degrees counter-clockwise, try "rotate(3 932.5 120)"