From a88d4cabfbd6c2b83232a5b916d96e4d490e84c7 Mon Sep 17 00:00:00 2001 From: Melinda T Date: Fri, 31 May 2024 10:25:02 -0700 Subject: [PATCH] popup uses data based on input address --- package-lock.json | 27 +++++++++++++++++++++++ package.json | 1 + src/parse-address.d.ts | 1 + src/vis/MeasurementMap.tsx | 45 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 src/parse-address.d.ts diff --git a/package-lock.json b/package-lock.json index 417fcc7..3a18f7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "jsonwebtoken": "^8.5.1", "leaflet": "^1.7.1", "leaflet-geosearch": "^3.7.0", + "parse-address": "^1.1.2", "prettier": "^2.5.1", "qrcode.react": "^1.0.1", "react": "^17.0.2", @@ -11791,6 +11792,14 @@ "node": ">=6" } }, + "node_modules/parse-address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-address/-/parse-address-1.1.2.tgz", + "integrity": "sha512-EnqetXieqyTlDzuuy+oT/pjjkWoI80MgFawDA/Z9LZBAMy+Iy6piURuX+Lr1iZNm7exD+V/B9IRjHaSj33adJw==", + "dependencies": { + "xregexp": "^3.1.1" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -16267,6 +16276,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "node_modules/xregexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.2.0.tgz", + "integrity": "sha512-tWodXkrdYZPGadukpkmhKAbyp37CV5ZiFHacIVPhRZ4/sSt7qtOYHLv2dAqcPN0mBsViY2Qai9JkO7v2TBP6hg==" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -25002,6 +25016,14 @@ "callsites": "^3.0.0" } }, + "parse-address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-address/-/parse-address-1.1.2.tgz", + "integrity": "sha512-EnqetXieqyTlDzuuy+oT/pjjkWoI80MgFawDA/Z9LZBAMy+Iy6piURuX+Lr1iZNm7exD+V/B9IRjHaSj33adJw==", + "requires": { + "xregexp": "^3.1.1" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -28225,6 +28247,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xregexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.2.0.tgz", + "integrity": "sha512-tWodXkrdYZPGadukpkmhKAbyp37CV5ZiFHacIVPhRZ4/sSt7qtOYHLv2dAqcPN0mBsViY2Qai9JkO7v2TBP6hg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 6da80e8..79723c8 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "jsonwebtoken": "^8.5.1", "leaflet": "^1.7.1", "leaflet-geosearch": "^3.7.0", + "parse-address": "^1.1.2", "prettier": "^2.5.1", "qrcode.react": "^1.0.1", "react": "^17.0.2", diff --git a/src/parse-address.d.ts b/src/parse-address.d.ts new file mode 100644 index 0000000..a39d06e --- /dev/null +++ b/src/parse-address.d.ts @@ -0,0 +1 @@ +declare module 'parse-address'; \ No newline at end of file diff --git a/src/vis/MeasurementMap.tsx b/src/vis/MeasurementMap.tsx index ad4b71e..ac91de1 100644 --- a/src/vis/MeasurementMap.tsx +++ b/src/vis/MeasurementMap.tsx @@ -3,6 +3,7 @@ import { MapType } from './MapSelectionRadio'; import { API_URL } from '../utils/config'; import * as L from 'leaflet'; import * as d3 from 'd3'; +import * as parser from 'parse-address'; import { siteMarker, siteSmallMarker, @@ -37,8 +38,43 @@ function cts(p: Cell): string { // print results of user search event to console function searchEventHandler(result: any): void { + //var url = "1410 NE Campus Pkwy, Seattle, WA 98195"; + console.log(result); + var addressLabel = result.location.label; + console.log(addressLabel); + // var parser = require("parse-address"); + var parsedAddr = parser.parseLocation(addressLabel); + console.log("hello 1"); + console.log(parsedAddr); + + var city = result.location.raw.address.city; + if (city == null) { + city = result.location.raw.address.town; + } + var post_direction = parsedAddr.suffix; + + if (post_direction == null) { + post_direction = parsedAddr.prefix; + } + + var postcode = result.location.raw.address.postcode; + var state = result.location.raw.address.state; + var endPoint = "http://127.0.0.1:8000/"; // server + var url = endPoint + + "?state=" + state + + "&cityname=" + city + + "&primary=" + parsedAddr.number + + "&street_number=" + parsedAddr.street + + "&st=" + parsedAddr.type + + "&post_direction=" + post_direction + + "&zip_5=" + postcode; + // + "&zip_9=" + "3207"; + console.log(url); + + const xhr = new XMLHttpRequest(); - xhr.open('GET', "http://127.0.0.1:8000/?state=va&cityname=arlington&primary=3109&street_number=9th&st=St&post_direction=N&zip_5=22201&zip_9=2024"); + //xhr.open('GET', "http://127.0.0.1:8000/?state=va&cityname=arlington&primary=3109&street_number=9th&st=St&post_direction=N&zip_5=22201&zip_9=2024"); + xhr.open('GET', url); xhr.onload = function() { console.log("200 check"); console.log(xhr.status); @@ -195,7 +231,12 @@ const MeasurementMap = ({ setLLayer(L.layerGroup().addTo(_map)); const search = new (GeoSearchControl as any)({ - provider: new OpenStreetMapProvider(), + provider: new OpenStreetMapProvider({ + params: { + addressdetails: 1, + } + + }), style: 'bar', // optional: bar|button - default button showPopup: true, marker: {