From 3496c9902d980afbc18aa8edc41a10d83259d6a7 Mon Sep 17 00:00:00 2001 From: EthShaw Date: Sun, 1 Feb 2026 19:53:26 -0500 Subject: [PATCH 1/2] Cache GPS coordinates for event addresses Since TBA is no longer looking up geolocations based on addresses for events, we will have to do that with the scraper. This takes those geolocated addresses, puts them in a JSON file, and uses FIRSTMap to For events that lack a valid address, GPS coordinates are still put in event_fallback_locs.json --- data/address_cache.json | 754 ++++++++++++++++++++++++++++++++++ data/event_fallback_locs.json | 4 + js/scripts.js | 74 +++- 3 files changed, 815 insertions(+), 17 deletions(-) create mode 100644 data/address_cache.json diff --git a/data/address_cache.json b/data/address_cache.json new file mode 100644 index 0000000..21da100 --- /dev/null +++ b/data/address_cache.json @@ -0,0 +1,754 @@ +{ + "700 MONROE STREET SW, HUNTSVILLE, AL 35801, USA": { + "lat": 34.7267938, + "lng": -86.5901107 + }, + "1001 AVENIDA DE LAS AMERICAS, HOUSTON, TX 77010, USA": { + "lat": 29.7517932, + "lng": -95.3581139 + }, + "BURKS DR, SEARCY, AR 72143, USA": { + "lat": 35.242929, + "lng": -91.7258965 + }, + "30 HERBERT ST, CAMBRIDGE PARK, NSW 2178, AUSTRALIA": { + "lat": -33.7543857, + "lng": 150.7350204 + }, + "1701 S SAN FRANCISCO ST, FLAGSTAFF, AZ 86011, USA": { + "lat": 35.1805983, + "lng": -111.652899 + }, + "100 N RENFREW ST, VANCOUVER, BC V5K 4W3, CANADA": { + "lat": 49.284596, + "lng": -123.042505 + }, + "3200 E AVE J8, LANCASTER, CA 93535, USA": { + "lat": 34.6825267, + "lng": -118.0641054 + }, + "1750 HARBOR STREET, PITTSBURG, CA 94565, USA": { + "lat": 38.0194787, + "lng": -121.8814362 + }, + "1560 N MINNEWAWA AVE, CLOVIS, CA 93619, USA": { + "lat": 36.8360545, + "lng": -119.7080215 + }, + "1980 ALLSTON WAY, BERKELEY, CA 94704, USA": { + "lat": 37.8670513, + "lng": -122.271379 + }, + "1440 E BROADWAY, GLENDALE, CA 91205, USA": { + "lat": 34.1460874, + "lng": -118.232862 + }, + "600 CHURCH STREET, HALF MOON BAY, CA 94019, USA": { + "lat": 37.462318, + "lng": -122.431598 + }, + "WISEBURN USD - WDV GYMNASIUM 201 N. DOUGLAS STREET, EL SEGUNDO, CA 90245, USA": { + "lat": 33.922246, + "lng": -118.383292 + }, + "2600 GENEVA AVE, DALY CITY, CA 94014, USA": { + "lat": 37.7067615, + "lng": -122.4186942 + }, + "26301 VIA ESCOLAR, MISSION VIEJO, CA 92692, USA": { + "lat": 33.5422569, + "lng": -117.6712553 + }, + "1220 MONTEREY STREET, HOLLISTER, CA 95023, USA": { + "lat": 36.8407692, + "lng": -121.4046654 + }, + "333 PONOMA STREET, PORT HUENEME, CA 93041, USA": { + "lat": 34.1507755, + "lng": -119.2001343 + }, + "9531 BOND ROAD, ELK GROVE, CA 95624, USA": { + "lat": 38.4235483, + "lng": -121.3436648 + }, + "800 W KATELLA AVE, ANAHEIM, CA 92802, USA": { + "lat": 33.8005839, + "lng": -117.9208047 + }, + "1151 SAN GABRIEL BLVD, ROSEMEAD, CA 91770, USA": { + "lat": 34.0410526, + "lng": -118.0872967 + }, + "6501 LINDA VISTA ROAD, SAN DIEGO, CA 92111, USA": { + "lat": 32.7723575, + "lng": -117.1774796 + }, + "2001 37TH AVE, SAN FRANCISCO, CA 94116, USA": { + "lat": 37.7480821, + "lng": -122.4959686 + }, + "199 CHURCHILL AVE, WOODSIDE, CA 94062, USA": { + "lat": 37.4458049, + "lng": -122.2310658 + }, + "4667 TELEGRAPH ROAD, VENTURA, CA 93003, USA": { + "lat": 34.2772814, + "lng": -119.2326722 + }, + "20809 2ND AVE, PETERSBURG, VA 23803, USA": { + "lat": 37.23891, + "lng": -77.42499 + }, + "NO. 500 DONGCHUAN ROAD, MINHANG DISTRICT, SH 201203, CHINA": { + "lat": 31.0202667, + "lng": 121.4152248 + }, + "UNIVERSITY OF DENVER 2240 BUCHTEL BOULEVARD, DENVER, CO 80210, USA": { + "lat": 39.684471, + "lng": -104.96459 + }, + "1590 W FILLMORE ST., COLORADO SPRINGS, CO 80904, USA": { + "lat": 38.8729722, + "lng": -104.8572942 + }, + "55 FOREST STREET, HARTFORD, CT 06105, USA": { + "lat": 41.7639962, + "lng": -72.7023136 + }, + "568 BUCKS HILL ROAD, WATERBURY, CT 06704, USA": { + "lat": 41.6042643, + "lng": -73.0263601 + }, + "12777 GEMINI BLVD N, ORLANDO, FL 32816, USA": { + "lat": 28.6073409, + "lng": -81.1972969 + }, + "1800 ALTHEA GIBSON WY, TALLAHASSEE, FL 32310, USA": { + "lat": 30.4245264, + "lng": -84.2897415 + }, + "1245 DAUER DR, CORAL GABLES, FL 33146, USA": { + "lat": 25.7153095, + "lng": -80.2793844 + }, + "100 W OGLETHORPE BLVD, ALBANY, GA 31701, USA": { + "lat": 31.5738321, + "lng": -84.1502504 + }, + "1400 COLEMAN AVE, MACON, GA 31201, USA": { + "lat": 32.8294267, + "lng": -83.6514183 + }, + "400 4TH STREET, COLUMBUS, GA 31901, USA": { + "lat": 32.45016, + "lng": -84.9877001 + }, + "2001 RIVERSIDE DRIVE, GAINESVILLE, GA 30501, USA": { + "lat": 34.3325833, + "lng": -83.8333041 + }, + "1335 OLD NORCROSS ROAD, LAWRENCEVILLE, GA 30046, USA": { + "lat": 33.954266, + "lng": -84.034438 + }, + "3142 WAIALAE AVE, HONOLULU, HI 96816, USA": { + "lat": 21.287794, + "lng": -157.808864 + }, + "2501 HUDSON ROAD, CEDAR FALLS, IA 50614, USA": { + "lat": 42.514966, + "lng": -92.4656195 + }, + "16200 IDAHO CENTER BLVD, NAMPA, ID 83687, USA": { + "lat": 43.6080574, + "lng": -116.5080492 + }, + "2121 S GOEBBERT ROAD, ARLINGTON HEIGHTS, IL 60005, USA": { + "lat": 42.0462337, + "lng": -87.9728787 + }, + "N MAPLEWOOD AVE, PEORIA, IL 61606, USA": { + "lat": 40.7016186, + "lng": -89.6185615 + }, + "230 S MARR ROAD, COLUMBUS, IN 47201, USA": { + "lat": 39.1951933, + "lng": -85.8849396 + }, + "1801 S 18TH STREET, LAFAYETTE, IN 47905, USA": { + "lat": 40.399713, + "lng": -86.87648 + }, + "56100 N BITTERSWET ROAD, MISHAWAKA, IN 46545, USA": { + "lat": 41.678924, + "lng": -86.10956 + }, + "608 E WALNUT STREET, WASHINGTON, IN 98815, USA": { + "lat": 38.65922, + "lng": -87.17279 + }, + "5900 MONTICELLO RD, SHAWNEE, KS 66226, USA": { + "lat": 39.0199505, + "lng": -94.8406023 + }, + "4545 WILLIAMS BLVD, KENNER, LA 70065, USA": { + "lat": 30.03936, + "lng": -90.2405762 + }, + "35 RIVER STREET, BILLERICA, MA 01890, USA": { + "lat": 42.5608443, + "lng": -71.2741943 + }, + "101 SCHOOL STREET, REVERE, MA 02151, USA": { + "lat": 42.4125825, + "lng": -71.0064568 + }, + "62 OAKLAND ROAD, READING, MA 01867, USA": { + "lat": 42.5353434, + "lng": -71.109401 + }, + "1215 WILBRAHAM ROAD, SPRINGFIELD, MA 01119, USA": { + "lat": 42.114441, + "lng": -72.5150285 + }, + "100 INSTITUTE ROAD, WORCESTER, MA 01609, USA": { + "lat": 42.274315, + "lng": -71.8084567 + }, + "7100 WHITTIER BLVD, BETHESDA, MD 20817, USA": { + "lat": 38.9819826, + "lng": -77.1273839 + }, + "4798 MOUNTAIN ROAD, PASADENA, MD 21122, USA": { + "lat": 39.107703, + "lng": -76.460867 + }, + "8065 NEW CUT ROAD, SEVERN, MD 21144, USA": { + "lat": 39.125986, + "lng": -76.642456 + }, + "74 WOODVILLE ROAD, FALMOUTH, ME 04105, USA": { + "lat": 43.7404799, + "lng": -70.2725091 + }, + "100 W VAN BUREN STREET, BATTLE CREEK, MI 49012, USA": { + "lat": 42.3263032, + "lng": -85.1848763 + }, + "501 W COLUMBIA AVE, BELLEVILLE, MI 48111, USA": { + "lat": 42.2003048, + "lng": -83.4932996 + }, + "201 SYLVESTER AVE, BERRIEN SPRINGS, MI 49103, USA": { + "lat": 41.9462232, + "lng": -86.3460785 + }, + "210 SPORTS DRIVE, BIG RAPIDS, MI 49307, USA": { + "lat": 43.6821172, + "lng": -85.4903667 + }, + "11775 HEWITT ROAD, BROOKLYN, MI 49230, USA": { + "lat": 42.092259, + "lng": -84.28506 + }, + "24787 VAN HORN ROAD, BROWNSTOWN CHARTER TWP, MI 48134, USA": { + "lat": 42.1222793, + "lng": -83.2719636 + }, + "740 N FREER ROAD, CHELSEA, MI 48118, USA": { + "lat": 42.3111507, + "lng": -84.0025051 + }, + "RYDER CENTER 7400 BAY ROAD, UNIVERSITY CENTER, MI 48710, USA": { + "lat": 43.520623, + "lng": -83.974205 + }, + "6565 OUTER DRIVE W, DETROIT, MI 48235, USA": { + "lat": 42.417807, + "lng": -83.194381 + }, + "MATTHAI CENTER 5101 JOHN C LODGE FREEWAY, DETROIT, MI 48202, USA": { + "lat": 42.354963, + "lng": -83.07382 + }, + "500 S LINCOLN ROAD, ESCANABA, MI 49829, USA": { + "lat": 45.740843, + "lng": -87.0836215 + }, + "3200 W SHIAWASSEE AVE, FENTON, MI 48430, USA": { + "lat": 42.7843095, + "lng": -83.7311612 + }, + "4302 UNDERHILL DRIVE, FLINT, MI 48506, USA": { + "lat": 43.0702875, + "lng": -83.6092891 + }, + "6230 KALAMAZOO AVE SE, KENTWOOD, MI 49508, USA": { + "lat": 42.8492909, + "lng": -85.6204535 + }, + "251 RUSSELL ROAD, LAKE CITY, MI 49651, USA": { + "lat": 44.3369476, + "lng": -85.2141978 + }, + "15060 HELMER ROAD, BATTLE CREEK, MI 49015, USA": { + "lat": 42.2921065, + "lng": -85.2381486 + }, + "8900 N NEWBURGH ROAD, LIVONIA, MI 48150, USA": { + "lat": 42.354177, + "lng": -83.410364 + }, + "650 W. EASTERDAY AVE, SAULT STE. MARIE, MI 49783, USA": { + "lat": 46.4917787, + "lng": -84.3652135 + }, + "555 E. HURON BLVD, MARYSVILLE, MI 48040, USA": { + "lat": 42.911336, + "lng": -82.4770004 + }, + "1001 S BARNES STREET, MASON, MI 48854, USA": { + "lat": 42.5699034, + "lng": -84.4350147 + }, + "3901 N SAGINAW ROAD, MIDLAND, MI 48640, USA": { + "lat": 43.6381522, + "lng": -84.2759426 + }, + "2380 S MILFORD ROAD, HIGHLAND, MI 49665, USA": { + "lat": 42.6168943, + "lng": -83.6237477 + }, + "1155 S ELIZABETH STREET, MT PLEASANT, MI 48858, USA": { + "lat": 43.5917541, + "lng": -84.7613066 + }, + "16 N QUARTERLINE ROAD, MUSKEGON, MI 49442, USA": { + "lat": 43.252527, + "lng": -86.193854 + }, + "1300 CAMPUS PKWY, SALINE, MI 48108, USA": { + "lat": 42.1886415, + "lng": -83.7494148 + }, + "4333 JOHN R ROAD, TROY, MI 48085, USA": { + "lat": 42.5818284, + "lng": -83.1115826 + }, + "5376 N LONG LAKE ROAD, TRAVERSE CITY, MI 49685, USA": { + "lat": 44.7491789, + "lng": -85.6882404 + }, + "FIELD HOUSE 10915 S CAMPUS DRIVE, ALLENDALE, MI 49401, USA": { + "lat": 42.963445, + "lng": -85.890583 + }, + "DULUTH ENTERTAINMENT CONVENTION CENTER 350 HARBOR DRIVE, DULUTH, MN 55802, USA": { + "lat": 46.781119, + "lng": -92.096606 + }, + "1901 4TH ST SE, MINNEAPOLIS, MN 55455, USA": { + "lat": 44.9778997, + "lng": -93.2290658 + }, + "10 4TH AVE S, ST. CLOUD, MN 56301, USA": { + "lat": 45.5614365, + "lng": -94.1566723 + }, + "700 TERRACE HEIGHTS, WINONA, MN 55987, USA": { + "lat": 44.046969, + "lng": -91.680659 + }, + "901 NE DOUGLAS ST, LEE'S SUMMIT, MO 64086, USA": { + "lat": 38.9287368, + "lng": -94.3749199 + }, + "4500 RIVER PK DR, RIVERSIDE, MO 64150, USA": { + "lat": 39.1770597, + "lng": -94.6251271 + }, + "1 S. COMPTON AVE, ST. LOUIS, MO 63103, USA": { + "lat": 38.6325255, + "lng": -90.2281769 + }, + "124 GOODMAN DRIVE, BETHLEHEM, PA 18015, USA": { + "lat": 40.5852911, + "lng": -75.3573984 + }, + "1457 ELLISVILLE BLVD, LAUREL, MS 39440, USA": { + "lat": 31.6665317, + "lng": -89.1505846 + }, + "227 CAMPUS DRIVE, ASHEVILLE, NC 28804, USA": { + "lat": 35.6180466, + "lng": -82.5688335 + }, + "1355 COX MILL ROAD, CONCORD, NC 28027, USA": { + "lat": 35.3955756, + "lng": -80.7276301 + }, + "1921 W. GATE CITY BLVD, GREENSBORO, NC 27403, USA": { + "lat": 36.0574142, + "lng": -79.8278651 + }, + "104 E HAGGARD AVE, ELON, NC 27244, USA": { + "lat": 36.1030894, + "lng": -79.5037001 + }, + "1150 FORESTVILLE ROAD, WAKE FOREST, NC 27587, USA": { + "lat": 35.9413562, + "lng": -78.5107133 + }, + "1200 S 42ND STREET, GRAND FORKS, ND 58201, USA": { + "lat": 47.911132, + "lng": -97.088289 + }, + "1305 MEMORIAL AVE, WEST SPRINGFIELD, MA 01089, USA": { + "lat": 42.09136, + "lng": -72.6186655 + }, + "47 NASHUA ROAD, BEDFORD, NH 03110, USA": { + "lat": 42.9374786, + "lng": -71.5190398 + }, + "128 MAIN STREET, DURHAM, NH 03827, USA": { + "lat": 43.1397063, + "lng": -70.9344473 + }, + "18 COREY ROAD, FLANDERS, NJ 07836, USA": { + "lat": 40.85647, + "lng": -74.712083 + }, + "155 ROBBINSVILLE EDINBURG ROAD, TRENTON, NJ 08691, USA": { + "lat": 40.238556, + "lng": -74.615357 + }, + "1016 ROUTE 601, SKILLMAN, NJ 08558, USA": { + "lat": 40.412036, + "lng": -74.702418 + }, + "110 CARRANZA ROAD, TABERNACLE, NJ 08088, USA": { + "lat": 39.8546223, + "lng": -74.7196713 + }, + "41 JACKSON VALLEY ROAD, WASHINGTON, NJ 07882, USA": { + "lat": 40.76999, + "lng": -74.986403 + }, + "4505 S. MARYLAND PARKWAY, LAS VEGAS, NV 89154, USA": { + "lat": 36.1079411, + "lng": -115.1439051 + }, + "216 FORT WASHINGTON AVENUE, NEW YORK, NY 10032, USA": { + "lat": 40.842668, + "lng": -73.941957 + }, + "145 COLLEGE ROAD, SUFFERN, NY 10901, USA": { + "lat": 41.1330926, + "lng": -74.0886395 + }, + "51 S PEARL ST, ALBANY, NY 12207, USA": { + "lat": 42.6486276, + "lng": -73.754719 + }, + "2000 PROSPECT STREET, CLEVELAND, OH 44115, USA": { + "lat": 41.5019126, + "lng": -81.6548582 + }, + "3800 VICTORY PARKWAY, CINCINNATI, OH 45207, USA": { + "lat": 39.149898, + "lng": -84.4746463 + }, + "111 WEST PURDUE AVE., ENID, OK 73701, USA": { + "lat": 36.4345401, + "lng": -97.8787042 + }, + "4145 EAST 21ST STREET, TULSA, OK 74114, USA": { + "lat": 36.1342261, + "lng": -95.930875 + }, + "1 GEORGIAN DRIVE, BARRIE, ON L4M 4H8, CANADA": { + "lat": 44.4122304, + "lng": -79.6682682 + }, + "6815 STANLEY AVE, NIAGARA FALLS, ON L2G 7B6, CANADA": { + "lat": 43.0760415, + "lng": -79.0850205 + }, + "1280 MAIN STREET WEST, HAMILTON, ON L8S 4L8, CANADA": { + "lat": 43.2639397, + "lng": -79.9178252 + }, + "ROBERT J. SURTEES ATHLETICS CENTRE 100 COLLEGE DRIVE, NORTH BAY, ON P1B 0G1, CANADA": { + "lat": 46.342493, + "lng": -79.486528 + }, + "2000 SIMCOE STREET NORTH, OSHAWA, ON L1G 0C8, CANADA": { + "lat": 43.9483414, + "lng": -78.8982025 + }, + "NORTH ATHLETIC CENTRE BUILDING A 205 HUMBER COLLEGE BLVD, ETOBICOKE, ON M9W 5L7, CANADA": { + "lat": 43.726973, + "lng": -79.609604 + }, + "PAC - PHYSICAL ACTIVITIES COMPLEX 200 UNIVERSITY AVE WEST, WATERLOO, ON N2L 3G3, CANADA": { + "lat": 43.469275, + "lng": -80.545816 + }, + "100 NIAGARA COLLEGE BLVD, WELLAND, ON L3C 7L3, CANADA": { + "lat": 43.0152687, + "lng": -79.2650898 + }, + "401 SUNSET AVE, WINDSOR, ON N9B 3P4, CANADA": { + "lat": 42.3052501, + "lng": -83.0645804 + }, + "1306 12TH STREET, OREGON CITY, OR 97045, USA": { + "lat": 45.3564318, + "lng": -122.5967398 + }, + "2330 - 17TH STREET NE, SALEM, OR 97301, USA": { + "lat": 44.9623398, + "lng": -123.0076648 + }, + "6800 SW WILSONVILLE ROAD, WILSONVILLE, OR 97070, USA": { + "lat": 45.3068013, + "lng": -122.7466614 + }, + "4319 HULMEVILLE ROAD, BENSALEM, PA 19020, USA": { + "lat": 40.113069, + "lng": -74.933841 + }, + "DAVID L. LAWRENCE CONVENTION CENTER 1000 FORT DEQUENSE BLVD, PITTSBURGH, PA 15222, USA": { + "lat": 40.446365, + "lng": -79.996706 + }, + "899 HORSHAM ROAD, HORSHAM, PA 19044, USA": { + "lat": 40.1970949, + "lng": -75.1639726 + }, + "3201 RYAN AVE, PHILADELPHIA, PA 19136, USA": { + "lat": 40.0440691, + "lng": -75.0402089 + }, + "333 CENTENNIAL ROAD, WARMINSTER, PA 18974, USA": { + "lat": 40.1824974, + "lng": -75.070769 + }, + "REESE COURT 1136 WASHINGTON STREET, CHENEY, WA 99004, USA": { + "lat": 47.492767, + "lng": -117.586471 + }, + "85 KEANEY ROAD, KINGSTON, RI 02881, USA": { + "lat": 41.4831266, + "lng": -71.5359679 + }, + "5794 CASPER PADGETT WAY, NORTH CHARLESTON, SC 29406, USA": { + "lat": 32.8980875, + "lng": -80.0233627 + }, + "3027 MARTIN LUTHER KING JR BLVD, ANDERSON, SC 29625, USA": { + "lat": 34.5413787, + "lng": -82.67327 + }, + "451 EAST CAROLINA AVE, HARTSVILLE, SC 29550, USA": { + "lat": 34.3752012, + "lng": -80.0661148 + }, + "2615 LOWER RICHLAND BLVD, HOPKINS, SC 29061, USA": { + "lat": 33.9516239, + "lng": -80.8734737 + }, + "202 GISTS CREEK RD, SEVIERVILLE, TN 37876, USA": { + "lat": 35.8921916, + "lng": -83.5877042 + }, + "1700 TX-36, ABILENE, TX 79602, USA": { + "lat": 32.4318253, + "lng": -99.6953187 + }, + "401 S BUCHANAN STREET, AMARILLO, TX 79101, USA": { + "lat": 35.2085633, + "lng": -101.830643 + }, + "301 WEST LOOP 121, BELTON, TX 76513, USA": { + "lat": 31.0297633, + "lng": -97.4807614 + }, + "1 NRG PKWY, HOUSTON, TX 77054, USA": { + "lat": 29.6848581, + "lng": -95.4108015 + }, + "499 SOUTH STATE HIGHWAY 78, FARMERSVILLE, TX 75442, USA": { + "lat": 33.15858, + "lng": -96.375408 + }, + "4501 BRIDGE STREET, FORT WORTH, TX 76103, USA": { + "lat": 32.759402, + "lng": -97.2557934 + }, + "1865 ALDINE BENDER, FM 525, HOUSTON, TX 77032, USA": { + "lat": 29.931552, + "lng": -95.358685 + }, + "700 CONVENTION CENTER BLVD, MCALLEN, TX 78501, USA": { + "lat": 26.2006841, + "lng": -98.2594316 + }, + "3201 EAST HOUSTON STREET, SAN ANTONIO, TX 78219, USA": { + "lat": 29.4269468, + "lng": -98.4393948 + }, + "4601 BOSQUE BLVD, WACO, TX 76710, USA": { + "lat": 31.5384435, + "lng": -97.1865633 + }, + "3200 SOUTH DECKER LAKE DRIVE, WEST VALLEY CITY, UT 84119, USA": { + "lat": 40.702787, + "lng": -111.9505424 + }, + "7630 TELEGRAPH ROAD, ALEXANDRIA, VA 22315, USA": { + "lat": 38.7512589, + "lng": -77.1432142 + }, + "3401 BRUIN LANE, BLACKSBURG, VA 24060, USA": { + "lat": 37.2115266, + "lng": -80.4606707 + }, + "1996 HAWK BLVD, CHESAPEAKE, VA 23322, USA": { + "lat": 36.6481359, + "lng": -76.2152639 + }, + "4801 TWIN HICKORY ROAD, GLEN ALLEN, VA 23059, USA": { + "lat": 37.6757665, + "lng": -77.5994653 + }, + "97 SPEAR STREET, BURLINGTON, VT 05405, USA": { + "lat": 44.471757, + "lng": -73.1934686 + }, + "711 E MAIN STREET, AUBURN, WA 98002, USA": { + "lat": 47.3085955, + "lng": -122.2197048 + }, + "10920 - 199TH AVE CT E, BONNEY LAKE, WA 98391, USA": { + "lat": 47.1590551, + "lng": -122.1697661 + }, + "7401 144TH PLACE SE, SNOHOMISH, WA 98296, USA": { + "lat": 47.866364, + "lng": -122.170471 + }, + "1301 S FAIR AVENUE, YAKIMA, WA 98901, USA": { + "lat": 46.588774, + "lng": -120.4841469 + }, + "194 LUND ROAD, NASHUA, NH, USA": { + "lat": 42.7387458, + "lng": -71.4739362 + }, + "2121 E EMMERS DRIVE, APPLETON, WI 54915, USA": { + "lat": 44.2463222, + "lng": -88.3725452 + }, + "3305 LILLY ROAD, BROOKFIELD, WI 53005, USA": { + "lat": 43.0787376, + "lng": -88.0896417 + }, + "300 HARBORVIEW PLAZA, LA CROSSE, WI 54601, USA": { + "lat": 43.812055, + "lng": -91.256607 + }, + "EAGAN HIGH SCHOOL, 4185 BRADDOCK TRAIL, EAGAN, MN, USA, EAGAN, MN 55123, USA": { + "lat": 44.8074923, + "lng": -93.1342563 + }, + "W3718 SOUTH DRVE, PLYMOUTH, WI 53073, USA": { + "lat": 43.8407699, + "lng": -87.8836602 + }, + "605 W VETERANS WAY, MUKWONAGO, WI 53149, USA": { + "lat": 42.8736688, + "lng": -88.3481707 + }, + "14832 FM973, BUILDING E, MANOR, TX 78653, USA": { + "lat": 30.3812775, + "lng": -97.5310108 + }, + "940 HIGHWAY 290 WEST, DRIPPING SPRINGS, TX 78620, USA": { + "lat": 30.1965682, + "lng": -98.1003734 + }, + "4607 FM2351, FRIENDSWOOD, TX 77546, USA": { + "lat": 29.5480676, + "lng": -95.1867849 + }, + "THE QUARTER MILE WALKWAY, ROCHESTER, NY 14623, USA": { + "lat": 43.0850551, + "lng": -77.6718185 + }, + "HOFSTRA UNIVERSITY, 245, HEMPSTEAD, NY 11549, USA": { + "lat": 40.7202613, + "lng": -73.5977634 + }, + "176 UNIVERSITY DRIVE, PEMBROKE, NC 28372, USA": { + "lat": 34.689056, + "lng": -79.201583 + }, + "AV. EUGENIO GARZA SADA 2501 SUR, TECNOL\u00f3GICO, MONTERREY, MEX 64700, MEXICO": { + "lat": 25.6505825, + "lng": -100.2874612 + }, + "2211 TONY INGLE PKWY, DALTON, GA 30720, USA": { + "lat": 34.7593471, + "lng": -85.0055251 + }, + "CRAMIM BINYAMINA HIGH-SCHOOL, CRAMIM BINYAMINA-GIV'AT ADA, BINYAMINA, HAZAFON, ISRAEL, BINYAMINA, HAZAFON, ISRAEL": { + "lat": 32.5500806, + "lng": 34.9548294 + }, + "MISHMAR HAGVUL 5, HADERA, M, ISRAEL": { + "lat": 32.4311467, + "lng": 34.9268537 + }, + "HALTZTADION ST 1, NATANYA, M, ISRAEL": { + "lat": 32.2935886, + "lng": 34.8651982 + }, + "AV. PEDRO \u00c1LVARES CABRAL S/N - IBIRAPUERA, S\u00c3O PAULO, SP 04094-000, BRAZIL": { + "lat": -21.76972, + "lng": -50.96194 + }, + "R. CARLOS WEBER, 835 - VILA LEOPOLDINA, S\u00c3O PAULO, SP 05303-000, BRAZIL": { + "lat": -23.5280082, + "lng": -46.7304035 + }, + "PASEO DEL TECNOL\u00d3GICO 751, TORRE\u00d3N, COA 27258, MEXICO": { + "lat": 22.1700376, + "lng": -101.0113522 + }, + "500 C\u00d4TE-VERTU OUEST, DORVAL, QC H4B 2K3, CANADA": { + "lat": 45.463201, + "lng": -73.632664 + }, + "TINAZTEPE CADDESI NO:6, BA\u015eAK\u015eEHIR / \u0130STANBUL, 34 61080, T\u00dcRKIYE": { + "lat": 41.1224152, + "lng": 28.7758293 + }, + "100 \u2013 140TH AVE SE, BELLEVUE, WA 98005, USA": { + "lat": 47.6080411, + "lng": -122.1508037 + }, + "AV. EUGENIO GARZA SADA 2501 SUR, TECNOL\u00d3GICO, MONTERREY, MEX 64700, MEXICO": { + "lat": 25.6505825, + "lng": -100.2874612 + }, + "BA\u011eLICA BLV., ETIMESGUT / ANKARA, 06 06790, T\u00dcRKIYE": { + "lat": 39.8954459, + "lng": 32.6348894 + }, + "DR. REMZI KAZANCIGIL CD. NO:32, BAKIRK\u00d6Y / \u0130STANBUL, 34 34147, T\u00dcRKIYE": { + "lat": 40.98936, + "lng": 28.87121 + } +} \ No newline at end of file diff --git a/data/event_fallback_locs.json b/data/event_fallback_locs.json index 6d67f1b..43e2058 100644 --- a/data/event_fallback_locs.json +++ b/data/event_fallback_locs.json @@ -46,5 +46,9 @@ "2025iscmp": { "lat": 31.751387, "lng": 35.194093 + }, + "2026incmp": { + "lat": 39.8306316, + "lng": -86.134416 } } diff --git a/js/scripts.js b/js/scripts.js index 68d45c3..e6983bf 100644 --- a/js/scripts.js +++ b/js/scripts.js @@ -36,7 +36,7 @@ function getCompetitionYear() { var CURRENT_YEAR = getCompetitionYear(); -var teams, avatars, locations, icons, event_fallback_locs; +var teams, avatars, locations, icons, address_cache, event_fallback_locs; async function getJsonData(file) { var resp = await fetch (file); @@ -47,6 +47,60 @@ async function getJsonData(file) { } } +// Return a properly-formatted/normalized address from the event object for lookup +// in the address cache. +function formatEventAddress(tbaEventObj) { + addr = `${tbaEventObj.address}, ${tbaEventObj.city}, ${tbaEventObj.state_prov}`; + postalCode = tbaEventObj.postal_code; + if (postalCode) { + addr += ` ${postalCode}, ` + } else { + addr += ", " + } + addr += tbaEventObj.country; + + // Some addresses come through with newlines that should instead be commas or extra + // spaces where they shouldn't be. This normalizes all newlines to commas and double- + // commas / spaces to single commas. + return addr.replace(/[\r\n]+/g, ", ").replace(/\s?,+([,\s]+)?/g, ", ").toUpperCase(); +} + +// If not set, sets lat and lng properties on the provided event object +// to reflect the event's location. If no location is known, a warning +// is printed to indicate to indicate the error and the location is set +// as 0, 0 +function updateEventLocation(tbaEventObj) { + if (tbaEventObj.lat != null || tbaEventObj.lng != null) { + // At time of writing, TBA API no longer has event lat/lng, so + // this should never happen. + return; + } + + // Compute the location based on the address + let address = formatEventAddress(tbaEventObj); + let loc = address_cache[address]; + if (loc) { + tbaEventObj.lat = loc.lat; + tbaEventObj.lng = loc.lng; + return; + } + + // Use fallback locations if the event does not have a valid + // address available from TBA API that we have cached. + const fallbackLoc = event_fallback_locs[tbaEventObj.key]; + + if (fallbackLoc) { + tbaEventObj.lat = fallbackLoc.lat; + tbaEventObj.lng = fallbackLoc.lng; + } else { + console.error(`Error: event "${tbaEventObj.name}" (${tbaEventObj.key}) does not` + + " have coordinates available from The Blue Alliance API or from" + + " event_fallback_locs.json. The event marker will be placed at 0,0"); + tbaEventObj.lat = 0; + tbaEventObj.lng = 0; + } +} + async function initMap() { // Initialize Google Map // Since (most) team avatars are designed to look good when they are pixelated but end up @@ -181,6 +235,7 @@ async function initMap() { // Initialize Google Map avatars = await getJsonData('data/avatars.json'); locations = await getJsonData('data/custom_locations.json'); icons = await getJsonData('data/custom_icons.json'); + address_cache = await getJsonData('data/address_cache.json'); event_fallback_locs = await getJsonData('data/event_fallback_locs.json'); // Create team and event markers @@ -220,22 +275,7 @@ async function initMap() { // Initialize Google Map event.type = 'district'; } - // Use fallback locations if the event does not have lat/lng - // coordinates available from TBA API - if (event.lat == null || event.lng == null) { - var fallbackLoc = event_fallback_locs[event.key]; - - if (fallbackLoc) { - event.lat = fallbackLoc.lat; - event.lng = fallbackLoc.lng; - } else { - console.error(`Error: event "${event.name}" (${event.key}) does not` + - " have coordinates available from The Blue Alliance API or from" + - " event_fallback_locs.json. The event marker will be placed at 0,0"); - event.lat = 0; - event.lng = 0; - } - } + updateEventLocation(event); // Correct duplicate locations if (coordList[event.lat]) { From 608edd57f873b4491d4bdf08f1a19926cb5554e9 Mon Sep 17 00:00:00 2001 From: EthShaw Date: Sun, 1 Feb 2026 20:03:02 -0500 Subject: [PATCH 2/2] Add three missing events' addresses to address cache --- data/address_cache.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/data/address_cache.json b/data/address_cache.json index 21da100..60bb5ff 100644 --- a/data/address_cache.json +++ b/data/address_cache.json @@ -750,5 +750,17 @@ "DR. REMZI KAZANCIGIL CD. NO:32, BAKIRK\u00d6Y / \u0130STANBUL, 34 34147, T\u00dcRKIYE": { "lat": 40.98936, "lng": 28.87121 + }, + "4380 VILLAGE WAY, LEAGUE CITY, TX 77546, USA": { + "lat": 29.5094707, + "lng": -95.024079 + }, + "HAMILTON HIGH SCHOOL, W220N6151 TOWN LINE RD, SUSSEX, WI, USA, SUSSEX, WI, USA": { + "lat": 43.1339, + "lng": -88.22204 + }, + "BETHPAGE HIGH SCHOOL, 10 CHERRY AVE, BETHPAGE, NY, USA, BETHPAGE, NY, USA": { + "lat": 40.7546749, + "lng": -73.4831671 } } \ No newline at end of file