78,335 properties
0 phones
0 emails
0 for sale
199 results ยท Page 3/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

Koch Street Quality Truck Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Shine-N-Roll Auto Detailing

MO

Car Washes
Phone
๐Ÿš— Car Washes

5 Star Carwash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Autosoak Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Mr Tidy Car

MO

Car Washes
Phone
๐Ÿš— Car Washes

Clean and Lube

MO

Car Washes
Phone
๐Ÿš— Car Washes

Bear Crossing Truck Wash & Tire Center

MO

Car Washes
Phone
๐Ÿš— Car Washes

Club Carwash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Phillips 66

MO

Car Washes
Phone
๐Ÿš— Car Washes

Hurricane Alley

MO

Car Washes
Phone
๐Ÿš— Car Washes

Charlie's Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Crown Express Car Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Dr Spotless Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Car/RV Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Phillips 66

MO

Car Washes
Phone
๐Ÿš— Car Washes

Kevin's Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Blue Lagoon Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Camelot Car Wash and Detail Center

MO

Car Washes
Phone
๐Ÿš— Car Washes

Woody's Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Bay Wash Express

MO

Car Washes
Phone
๐Ÿš— Car Washes

Detail Source

MO

Car Washes
Phone
๐Ÿš— Car Washes

Mirror Image Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Olympic Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Patriot Auto Wash & Self-Service Dog Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Kearney Street Truck Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Mister Hotshine

MO

Car Washes
Phone
๐Ÿš— Car Washes

Tiger Express Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Mister Hotshine Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Wash nโ€™ Run

MO

Car Washes
Phone
๐Ÿš— Car Washes

Waterway

MO

Car Washes
Phone
๐Ÿš— Car Washes

Otto Automatic Car Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

The Better Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Lighthouse Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Tiger Express Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Parker's Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Car Rental Wash Bay

MO

Car Washes
Phone
๐Ÿš— Car Washes

SMAD Scott Myers Auto Detailing

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Winner's Circle Mobile One

MO

Car Washes
Phone
๐Ÿš— Car Washes

M&K Car Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Crestwood Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Tiger Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

The Wash KC

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Circle H Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Jefferson Avenue Car Wash

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Route 66 Car Wash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Midwest Petroleum

MO

Car Washes
Phone Email
๐Ÿš— Car Washes

Baywash

MO

Car Washes
Phone
๐Ÿš— Car Washes

Baywash

MO

Car Washes
Phone
๐Ÿš— Car Washes

PRO CAR WASH NORTH

MO

Car Washes
Phone
๐Ÿš— Car Washes

Mr. Car Wash

MO

Car Washes
Phone
// 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