78,335 properties
0 phones
0 emails
0 for sale
119 results · Page 1/3
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) Mailbox / Pack & Ship (47) Gas Stations (35) Dry Cleaners (8,419)
Map:

Wildwood Marina

1B

Cleveland, OH · 16975 Wildwood Drive

Marinas
Phone Email

The Dock of the Bay Marina

1B

Sandusky, OH · 111 East Shoreline Drive

Marinas
Phone Email

Son Rise Marina

2

Sandusky, OH · 1535 1st Street

Marinas
Phone

Venetian Marina

2

Sandusky, OH · 2035 1st Street

Marinas
Phone

Cedar Point Marina

2

Sandusky, OH · 1 Cedar Point Drive

Marinas
Phone

Alum Creek Marina

2

OH

Marinas
Phone

Scudder Marina

3

OH · 361 North Shore Road

Marinas
Phone

Port Lorain

1B

Lorain, OH · 301 Lakeside Avenue

Marinas
Phone Email

A.R.U. Marina

1B

Ashtabula, OH · 1500 Great Lakes Avenue

Marinas
Phone Email

Little Indian Creek Boat Club

2

New Richmond, OH · 793 Washington Street

Marinas
Phone

Ottawa River Yacht Club

2

Toledo, OH · 5844 Edgewater Drive

Marinas
Phone

Apple Valley Marina

2

Howard, OH · 2925 Apple Valley Drive

Marinas
Phone

Bee Run Marina

2

Sutton, OH · Bee Run Recreation Road

Marinas
Phone

Marietta Harbor

2

OH

Marinas
Phone Email

Bay View Yacht Club

2

OH

Marinas
Phone

Lively Lady Marina & Campground

2

Aberdeen, OH

Marinas 200 Slips 💰 Valuation on file
Phone

Gladhaven Campground and Marina

2

Port Clinton, OH

Marinas 78 Slips 💰 Valuation on file
Phone

Portage View Campground & Marina

2

Port Clinton, OH

Marinas 100 Slips 💰 Valuation on file
Phone

Wild Wings Campground & Marina

2

Oak Harbor, OH

Marinas 388 Slips 💰 Valuation on file
Phone

Magee East Marina & Campground

2

Oak Harbor, OH

Marinas 90 Slips 💰 Valuation on file
Phone Email

Turtle Creek Marina and Campgrounds

2

Oak Harbor, OH

Marinas 19 Slips 💰 Valuation on file
Phone

North Cape Yacht Club

2

OH

Marinas
Phone Email

Hueston Woods Marina

2

OH

Marinas
Phone

Williamstown Lake Marina

2

OH

Marinas
Phone Email

St Marys Marina

2

OH

Marinas
Phone

Alum Creek Sailing Facility

2

OH

Marinas
Phone Email

Port Clinton Yacht Club

2

OH

Marinas
Phone Email

Lake Front Marina

2

OH

Marinas
Phone Email

Deer Creek Lake Marina

2

OH

Marinas
Phone Email

Atwood Lake Marina West

2

OH

Marinas
Phone Email

Fire4 Marina

2

OH

Marinas
Phone

Huron City Marina

2

OH

Marinas
Phone Email

Huron Yacht Club

2

OH

Marinas
Phone Email

Burnsville Docks

2

Burnsville, OH

Marinas
Phone Email

Chagrin Lagoons Yacht Club

2

OH

Marinas
Phone

charles mills lake marina

2

OH

Marinas
Phone Email

Eagle Creek Marina

2

OH

Marinas
Phone

Emerald Necklace Marina

2

OH

Marinas
Phone

Sugartree Fork Marina

2

OH

Marinas
Phone

Sandusky Yacht Club

2

OH

Marinas
Phone Email

Vermillion Boat Club

2

OH

Marinas
Phone Email

Martin's Ferry Yacht Club

2

OH

Marinas
Phone

Blennerhasset Yacht Club

2

OH

Marinas
Phone

Waynoka Marina

2

OH

Marinas
Phone Email

Sippo Lake Marina

2

OH

Marinas
Phone

Nor'Easter Club & Marina

2

OH

Marinas
Phone Email

Battery Park Marina

2

OH

Marinas
Phone

River View Yacht Club

2

OH

Marinas
Phone Email

Harbor Towne Yacht Club

2

OH

Marinas
Phone

Atwood Lake Marina East

2

OH

Marinas
Phone Email
1 / 3 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); } }
🔒
Unlock owner contacts for 55,000+ properties
Get Access