From bf5f736cf3060f37242b76ac4bf12f00c2775acb Mon Sep 17 00:00:00 2001 From: Rob Wiederstein Date: Thu, 16 Apr 2026 06:29:23 -0400 Subject: [PATCH] Add owner name to listings map popup Join owner_1 from owners.rds to listings via address match key. Display in marker popup above price on the Listings tab map. --- R/app_server.R | 1 + data-raw/update_listings.R | 3 ++- data/listings.rds | Bin 693 -> 891 bytes 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/R/app_server.R b/R/app_server.R index 4bf366a..8025182 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -234,6 +234,7 @@ create_server <- function(input, output, session) { lng = ~longitude, popup = ~paste0( "", address, "
", + "Owner: ", owner_1, "
", "Price: ", price_fmt, "
", "Sq Ft: ", sqft, "
", "$/Sq Ft: ", ppsf_fmt diff --git a/data-raw/update_listings.R b/data-raw/update_listings.R index 3d37460..0a7c89e 100644 --- a/data-raw/update_listings.R +++ b/data-raw/update_listings.R @@ -64,7 +64,7 @@ owners_coords <- owners_sf |> street_raw = trimws(sub("^\\d+\\s+(.*),.*$", "\\1", location)), match_key = paste(house_num, toupper(street_raw)) ) |> - select(match_key, geom) |> + select(match_key, owner_1, geom) |> distinct(match_key, .keep_all = TRUE) # Extract house number + street from RentCast address @@ -94,6 +94,7 @@ listings <- listings |> transmute( listed_date = as.Date(listedDate), address = formattedAddress, + owner_1, sqft = as.numeric(squareFootage), price = as.numeric(price), price_per_sqft = round(price / sqft, 0), diff --git a/data/listings.rds b/data/listings.rds index e97d3c47ad4ceb617d4a3870c55eb6cac3727fc7..522081bf844f4ef5bac314a71e256232614f23bd 100644 GIT binary patch literal 891 zcmV->1BCn^iwFP!000001C5kjXcSiz$0y0ge3>*KYXq%wv`{u=6ZRvT9U?g6?%iaQ z$xN7?&AP2+Gj%4LCF^XQ9SJ@u2x4FCOTiB!f)7DZP}&!*c?gAqkCvqLrO-UIg%-t9 zDELy-vwQF0u62V8yT3XA^Ks9;JNKMy=Qys3^LU!Lre=KPnp0YQD1ura8m-7KWQVZX zd$H_&!)}4HbDeS*SK-FL)W7kP*}pRT7sl_I{$0i9I8P(~G;kiSt-Sc@f?g`&LwA+v ziRq4se9iO@rVmC&BM@EC3ujEb1TotWDJ$;)s(zR?t^8@z4{-^?BOyM_Qv7@%1fpT& zt(;S|AnLH3U?5yK$Hxc4py{@wTW=N#9jzNb6bv4Lbg^iBZs(1hS(OtA)=e6SjE??q zkzgQHHv#y-5jdgScwpx%`>0zuJOa~2%dv~4s$TdV3I|8tr!a1lf9E!LI?IoEJe%b5 z`_#uiLOaLRz74xoF#}1B%n}(UnASb6iW4%#h%6_PFhf+Pe;^Ynsh~rVMJWa|Ozui6 zN(`c+sz@0b#+llm#+U?5Dp*MZUsM^=G(rZL*PBccn1TsKl9V)dpsA^(#(X`oR6L%6 zDKeXoVN#qXN#^K_rc@0zQI-kBL{%a(VXl2ANOX#*FfOVYh=PxRl!y}`No@eVZQJ-^ zkq4%Uq{K2XEvkufzv|n;^y04Erx)%kdfkMZ0_BaTlq2xbR0e_AcX^4D))9Lf<|=gK_8!`ze!iA_x>hJptyk9<=INXea;(1`bqfn@9|rR; zFnw{0GVkVHtkny1HT?@?eXFlNesK@EE&bS|AkS)CC?$;b-dcS8o^&k?=dS#O%!dc|e}jzPK6WsH^gQ`w?FMr2(&`_b$oBp(ynf{3qp7tPw?5h(pI*&A ze|vCR`We$5oUKgkDCA3yX=IJ^{G?KgZWy+SBbJ%PWy`d)L3h%Y&dxh-#U&fBn|m`V zMs^8ft3p}}x|4U#8E#Ztp=jl(P}^ObU0fb^JM6@7WBE_PSNR_r*s#sjj{J6PSs$La RF$JyH{{eu7w=@6% literal 693 zcmV;m0!sZKiwFP!000001B>8dU|?WoU}0fqU}gm}8CXL@+;lB~V!}WUJCNoB(%cSL zgc?Ay2wK1aLh~Mg&}iD zbrjru6pT%bERCUBbSw>w6dY4hGV{_)^79m&OQ3oT4UBQ>(XccyRtQNfDoM;kSYl*` zQ@yUCp{YW6ett?)QD#bdDv}-pL!6p4EzHd^EHN}N!l^;Q(!f-~DX|C`V3lBh;569S zM8P*ducRoy7|AV`cnmf)A;w^!H!ZPx6JJ;=TLQx-xSSaCf$lKEua1EMk~HV6fh4IZ zkObv0%K<{qJOQESC_u$w@*NO*225N7l@Fz1<~xcgZ2)l`dDerIx}$Jg0fdH_<0!1#k0 z&q+XWzk{{#vL9-1R|Dz)K34_(fplRAgHfo1wb0z`o&9}4e)g{T3yXmC`%kj0#z5NM z^5Ujv4%Q-K9J`_BxQLU;65M8M2H5HejuG&VjQNIU*$(~Aev zF)|4q*MW4Vv8ME9AniQgM$QvRv+R!AGZRQ_H!pk13#7TkIz@DVboLJKJ?t>^fqd@h zzW6ujMMGXM7X5P=pR#f51lFe3_zfGG&d z;RAEx3sQ^Xk(6-cB$i~Bl%~K`apvUbr9%Wzox@p_U#KsP4pr4<3S0D1oa7|0X5cm)6e_--+8