78,335 properties
0 phones
0 emails
0 for sale
162 results Β· Page 1/4
All (78,335) Self-Storage (6,623) Mobile Home Parks (7,641) Car Washes (9,819) Laundromats (7,714) RV Parks (22,383) Marinas (5,509) Budget Motels (10,145) Dry Cleaners (8,419)
Map:
πŸš— Car Washes

JLE Truckwashing

Portland, OR Β· 9615 Northeast Vancouver Way

Car Washes
Phone Email
πŸš— Car Washes

Oil Stop

Medford, OR Β· 775 Medford Center

Car Washes
Phone Email
πŸš— Car Washes

Scooter’s Car Wash

Springfield, OR Β· 128 South 32nd Street

Car Washes
Phone Email
πŸš— Car Washes

Eco Car Wash

Portland, OR Β· 18128 Northeast Glisan Street

Car Washes
Phone Email
πŸš— Car Washes

Eco Car Wash

Portland, OR Β· 12118 North Jantzen Drive

Car Washes
Phone Email
πŸš— Car Washes

Eco Car Wash

Portland, OR Β· 16942 Southeast Powell Boulevard

Car Washes
Phone Email
πŸš— Car Washes

Washman

Gresham, OR Β· 24161 Southeast Stark Street

Car Washes
Phone
πŸš— Car Washes

Canby Car Wash & Auto Lube

Canby, OR Β· 118 Southeast 1st Avenue

Car Washes
Phone
πŸš— Car Washes

Kiss Car Wash

Tigard, OR Β· 12390 Southwest Scholls Ferry Road

Car Washes
Phone
πŸš— Car Washes

Willamette Mist Car Wash

Salem, OR Β· 4955 Commercial Street Southeast

Car Washes
Phone
πŸš— Car Washes

Washman

Salem, OR Β· 4096 Commercial Street Southeast

Car Washes
Phone
πŸš— Car Washes

Surf Thru Express

Medford, OR Β· 245 East Barnett Road

Car Washes
Phone
πŸš— Car Washes

Washman

Portland, OR Β· 1530 Northeast Martin Luther King Junior Boulevard

Car Washes
Phone
πŸš— Car Washes

Kaady Car Wash

Lake Oswego, OR Β· 17701 Lower Boones Ferry Road

Car Washes
Phone
πŸš— Car Washes

Alpha's Auto Detail

Portland, OR Β· 8064 Southeast 17th Avenue

Car Washes
Phone
πŸš— Car Washes

Kaady Car Wash

Portland, OR Β· 7400 Southwest Barbur Boulevard

Car Washes
Phone
πŸš— Car Washes

Red Carpet Car Wash

Bend, OR Β· 235 Southeast 3rd Street

Car Washes
Phone
πŸš— Car Washes

Lara Detail

Portland, OR Β· 3714 South Macadam Avenue

Car Washes
Phone
πŸš— Car Washes

Kaddy Car Wash

Hillsboro, OR Β· 2170 Northeast Cornell Road

Car Washes
Phone
πŸš— Car Washes

Washman

Sandy, OR Β· 37055 Highway 26

Car Washes
Phone
πŸš— Car Washes

Uptown Auto Detail

Portland, OR Β· 1222 Southwest 17th Avenue

Car Washes
Phone
πŸš— Car Washes

Washman

Portland, OR Β· 315 Northeast 82nd Avenue

Car Washes
Phone
πŸš— Car Washes

Cruiser's Corner

Beaverton, OR Β· 17395 Southwest Farmington Road

Car Washes
Phone
πŸš— Car Washes

Stafford Hills Car Wash

Wilsonville, OR Β· 8605 Southwest Elligsen Road

Car Washes
Phone
πŸš— Car Washes

Kiss Car Wash

Wilsonville, OR Β· 8243 Southwest Wilsonville Road

Car Washes
Phone
πŸš— Car Washes

Kaady Car Wash

Tualatin, OR Β· 6950 Southwest Nyberg Street

Car Washes
Phone
πŸš— Car Washes

Kiss

Tigard, OR Β· 12475 Southwest Main Street

Car Washes
Phone
πŸš— Car Washes

Flying Frog Car Wash

Bend, OR Β· 225 Northeast Quimby Avenue

Car Washes
Phone
πŸš— Car Washes

Red Carpet Detail Center

Bend, OR Β· 235 Southeast 3rd Street

Car Washes
Phone
πŸš— Car Washes

Sud-N-Shine

Bend, OR Β· 61516 South Highway 97

Car Washes
Phone
πŸš— Car Washes

Quench and Drench

Medford, OR Β· 1024 South Riverside Avenue

Car Washes
Phone
πŸš— Car Washes

Shiny Impressions Auto Detail

Lake Oswego, OR Β· 17717 Lower Boones Ferry Road

Car Washes
Phone
πŸš— Car Washes

Scrub It Up Car & Pet Wash

OR Β· 266 East Beakman Street

Car Washes
Phone
πŸš— Car Washes

Xpresso Lube

Portland, OR Β· 12750 Northwest Cornell Road

Car Washes
Phone
πŸš— Car Washes

Pinky's Car Wash

Happy Valley, OR Β· 11969 Southeast 82nd Avenue

Car Washes
Phone
πŸš— Car Washes

Sud-N-Shine Car Wash

Cottage Grove, OR Β· 235 East Davidson Avenue

Car Washes
Phone
πŸš— Car Washes

Astro Jet Car Wash

Portland, OR Β· 8064 Southeast 17th Avenue

Car Washes
Phone
πŸš— Car Washes

Ultra Car Wash

Redmond, OR Β· 3640 Southwest 21st Place

Car Washes
Phone
πŸš— Car Washes

Big Red Car Wash

Salem, OR Β· 2390 Commercial Street Southeast

Car Washes
Phone Email
πŸš— Car Washes

Happy's Car Wash

Springfield, OR Β· 3356 Gateway Street

Car Washes
Phone
πŸš— Car Washes

Magic Touch

OR Β· 1922 Lancaster Drive Northeast

Car Washes
Phone Email
πŸš— Car Washes

United Car Wash

Tigard, OR Β· 9855 Southwest Walnut Place

Car Washes
Phone Email
πŸš— Car Washes

So Cal Auto Detail

Portland, OR Β· 3141 Southeast 82nd Avenue

Car Washes
Phone Email
πŸš— Car Washes

24 Hour Finish Line Car Wash

Springfield, OR Β· Main Street

Car Washes
Phone Email
πŸš— Car Washes

Bluebird Express Car Wash

Ontario, OR Β· 1315 SE 1st Ave

Car Washes
Phone
πŸš— Car Washes

Astro Jet Car Wash

Portland, OR Β· 11214 Southeast Division Street

Car Washes
Phone
πŸš— Car Washes

Washman

Salem, OR Β· 1705 Lancaster Drive Northeast

Car Washes
Phone
πŸš— Car Washes

Splash-n-Dash Car Wash

Portland, OR Β· 3134 Northeast Martin Luther King Junior Boulevard

Car Washes
Phone
πŸš— Car Washes

Lake Grove Car Wash

Lake Oswego, OR Β· 16110 Boones Ferry Road

Car Washes
Phone
πŸš— Car Washes

Carriage House

Beaverton, OR Β· 13375 Southwest Canyon Road

Car Washes
Phone
1 / 4 Next β†’
// Heat map modes // mapPoints format: [id, lat, lon, category, valuation, data_score, motivated_score] let heatLayer = null; let circleLayer = null; let currentMode = 'markers'; function clearOverlays() { if (heatLayer) { map.removeLayer(heatLayer); heatLayer = null; } if (circleLayer) { map.removeLayer(circleLayer); circleLayer = null; } } function setMapMode(mode) { currentMode = mode; clearOverlays(); // Update button states document.querySelectorAll('.map-mode-btn').forEach(b => b.classList.remove('active')); document.getElementById('btn-' + mode).classList.add('active'); if (mode === 'markers') { markers.addTo(map); return; } map.removeLayer(markers); if (mode === 'density') { // Pure density heatmap const pts = mapPoints.filter(p => p[1] && p[2]).map(p => [p[1], p[2], 1]); heatLayer = L.heatLayer(pts, {radius: 20, blur: 15, maxZoom: 10, max: 5, gradient: {0.2: '#ffffb2', 0.4: '#fd8d3c', 0.6: '#f03b20', 0.8: '#bd0026', 1: '#800026'} }).addTo(map); } else if (mode === 'valuation') { // Circle markers colored by valuation circleLayer = L.layerGroup(); const maxVal = Math.max(...mapPoints.map(p => p[4]).filter(v => v > 0)) || 1; mapPoints.filter(p => p[1] && p[2] && p[4] > 0).forEach(p => { const ratio = Math.min(p[4] / maxVal, 1); const r = Math.round(ratio * 255); const g = Math.round((1 - ratio) * 200); const color = `rgb(${r}, ${g}, 50)`; const radius = 4 + ratio * 10; L.circleMarker([p[1], p[2]], { radius: radius, fillColor: color, color: '#fff', weight: 1, fillOpacity: 0.7 }).bindPopup(`$${(p[4]/1000).toFixed(0)}K`).addTo(circleLayer); }); circleLayer.addTo(map); } else if (mode === 'quality') { // Circle markers colored by data_score circleLayer = L.layerGroup(); mapPoints.filter(p => p[1] && p[2]).forEach(p => { const score = p[5] || 0; const ratio = score / 10; // Green = high, Red = low const r = Math.round((1 - ratio) * 255); const g = Math.round(ratio * 200); const color = `rgb(${r}, ${g}, 50)`; L.circleMarker([p[1], p[2]], { radius: 3 + ratio * 5, fillColor: color, color: '#fff', weight: 0.5, fillOpacity: 0.6 }).addTo(circleLayer); }); circleLayer.addTo(map); } else if (mode === 'motivated') { // Heat map weighted by motivated score const pts = mapPoints.filter(p => p[1] && p[2] && p[6] > 0).map(p => [p[1], p[2], p[6] / 100]); heatLayer = L.heatLayer(pts, {radius: 25, blur: 20, maxZoom: 10, max: 1, gradient: {0.2: '#fff7bc', 0.4: '#fec44f', 0.6: '#fe9929', 0.8: '#d95f0e', 1: '#993404'} }).addTo(map); } } // ===== Slide-over detail panel ===== const panel = document.getElementById('detailPanel'); const dpBody = document.getElementById('dpBody'); const dpHead = document.getElementById('dpHead'); const dpIcon = document.getElementById('dpIcon'); const MEDIA_GRADIENTS = { self_storage:'#fde68a,#f59e0b', car_wash:'#bfdbfe,#3b82f6', laundromat:'#ddd6fe,#8b5cf6', rv_park:'#fecaca,#ef4444', mobile_home_park:'#a7f3d0,#10b981', marina:'#a5f3fc,#06b6d4', budget_motel:'#fed7aa,#f97316', boat_rv_storage:'#cbd5e1,#64748b', mailbox_pack_ship:'#fbcfe8,#ec4899', dry_cleaner:'#99f6e4,#14b8a6', gas_station:'#fef08a,#eab308' }; function esc(s){ return (s==null?'':String(s)).replace(/[&<>"']/g, c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c])); } function renderDetail(d) { // header gradient by category const g = MEDIA_GRADIENTS[d.category] || '#e2e8f0,#cbd5e1'; dpHead.style.background = `linear-gradient(135deg, ${g.split(',')[0]} 0%, ${g.split(',')[1]} 100%)`; dpIcon.textContent = d.category_icon || '🏒'; // badges row let badges = ''; if (d.motivated) badges += 'πŸ”₯ MOTIVATED '; if (d.for_sale) badges += 'FOR SALE '; // headline metrics (free) let metrics = ''; if (d.total_units) metrics += `
${esc(d.total_units)}
${esc(d.unit_label)}
`; if (d.year_established) metrics += `
${esc(d.year_established)}
Established
`; if (d.acreage) metrics += `
${esc(d.acreage)}
Acres
`; // financials section (paid) let fin = ''; if (d.paid_locked && d.has_financials) { fin = `

Financials

πŸ”’ Valuation, cap rate & NOI β€” members only
`; } else if (!d.paid_locked) { let rows = ''; if (d.valuation) rows += `
Est. Valuation${esc(d.valuation)}
`; if (d.asking_price) rows += `
Asking Price${esc(d.asking_price)}
`; if (d.cap_rate) rows += `
Cap Rate${esc(d.cap_rate)}
`; if (d.noi) rows += `
NOI${esc(d.noi)}
`; if (d.annual_revenue) rows += `
Annual Revenue${esc(d.annual_revenue)}
`; if (d.occupancy_rate) rows += `
Occupancy${esc(d.occupancy_rate)}
`; if (rows) fin = `

Financials

${rows}
`; } // contact section let contact = ''; if (d.owner_name) contact += `
Owner${esc(d.owner_name)}
`; if (d.phone) { const ql = d.phone_quality==='owner_direct'?' βœ“ owner':(d.phone_quality==='corporate'?' Β· corp':''); contact += `
Phone${esc(d.phone)}${ql}
`; } if (d.email) contact += `
Email${esc(d.email)}
`; if (d.website) contact += `
Websitevisit β†—
`; if (contact) contact = `

Contact

${contact}
`; // description let desc = ''; if (d.description) desc = `

About

${esc(d.description.slice(0,320))}${d.description.length>320?'…':''}

`; dpBody.innerHTML = `
${badges}

${esc(d.name)}

${esc(d.category_label)} Β· ${esc(d.city||'')}${d.city?', ':''}${esc(d.state||'')}

${d.address ? `

${esc(d.address)}

`:''}
${metrics ? `

Overview

${metrics}
`:''} ${fin} ${contact} ${desc} View full details β†’ `; } let activeDetailId = null; function openDetail(ev, id) { if (ev) ev.preventDefault(); activeDetailId = id; panel.classList.add('open','loading'); panel.setAttribute('aria-hidden','false'); // mark active card document.querySelectorAll('.prop-card').forEach(c => c.classList.toggle('active', c.dataset.id == id)); // shareable URL + back-button support const url = new URL(window.location); url.searchParams.set('selected', id); history.pushState({selected: id}, '', url); fetch(`/api/property/${id}/detail`).then(r=>r.json()).then(d => { if (activeDetailId != id) return; // user clicked another card meanwhile if (!d || !d.id) { dpBody.innerHTML = '

Not found.

'; } else renderDetail(d); panel.classList.remove('loading'); }).catch(()=>{ dpBody.innerHTML = '

Could not load.

'; panel.classList.remove('loading'); }); return false; } function closeDetail(push) { activeDetailId = null; panel.classList.remove('open'); panel.setAttribute('aria-hidden','true'); document.querySelectorAll('.prop-card.active').forEach(c => c.classList.remove('active')); if (push !== false) { const url = new URL(window.location); url.searchParams.delete('selected'); history.pushState({}, '', url); } } // back/forward window.addEventListener('popstate', (e) => { const sel = new URL(window.location).searchParams.get('selected'); if (sel) openDetailFromHistory(parseInt(sel)); else closeDetail(false); }); function openDetailFromHistory(id) { activeDetailId = id; panel.classList.add('open','loading'); panel.setAttribute('aria-hidden','false'); document.querySelectorAll('.prop-card').forEach(c => c.classList.toggle('active', c.dataset.id == id)); fetch(`/api/property/${id}/detail`).then(r=>r.json()).then(d => { if (activeDetailId != id) return; if (d && d.id) renderDetail(d); panel.classList.remove('loading'); }); } // Esc closes document.addEventListener('keydown', e => { if (e.key === 'Escape' && panel.classList.contains('open')) closeDetail(); }); // Open on load if ?selected= present (shared URL) (function(){ const sel = new URL(window.location).searchParams.get('selected'); if (sel) openDetailFromHistory(parseInt(sel)); })();
πŸ”’
Unlock owner contacts for 78,335+ businesses
$500/yr Get Access