49,013 properties
0 phones
0 emails
0 for sale
97 results · Page 1/2
All (49,013) Self-Storage (6,315) Mobile Home Parks (7,982) Car Washes (7,857) Laundromats (5,362) RV Parks (8,082) Marinas (3,500) Budget Motels (9,891) Mailbox / Pack & Ship (24)
Map:

Generation III Marina

1B

Cambridge, MD · 205 Cedar Street

Marinas
Phone Email

Saint Michaels Harbour Inn, Marina and Spa

1B

Saint Michaels, MD · 101 North Harbor Road

Marinas
Phone Email

Chesapeake Bay Maritime Museum

1B

Saint Michaels, MD · 213 North Talbot Street

Marinas
Phone Email

Solomons Yachting Center

1B

Solomons, MD · 255 Alexander Street

Marinas
Phone Email

Harbor Island Marina

1B

Solomons, MD · 105 Charles Street

Marinas
Phone Email

Calvert Marina

1B

Solomoms, MD · 14485 Dowell Road

Marinas
Phone Email

Bert Jabin's Yacht Yard

1B

MD

Marinas
Phone Email

Higgins Yacht Yard and Marina

1B

MD

Marinas
Phone Email

South River Marina

1B

MD

Marinas
⚠️ Phone Email

Anchor Yacht Basin

1B

MD

Marinas
Phone Email

Knapp's Narrows Marina & Inn

1B

MD

Marinas
Phone Email

Chesapeake Inn Marina

1B

MD

Marinas
Phone Email

Vera's White Sands Marina

2

MD · 1200 White Sands Drive

Marinas
Phone

Stansbury Yacht Basin

2

Middle River, MD · 1312 Shore Road

Marinas
Phone

Maryland Marina

2

Middle River, MD · 3501 Red Rose Farm Road

Marinas
Phone Email

Tradewinds Marina

2

Middle River, MD · 412 Armstrong Road

Marinas
Phone

Parkside Marina

2

Middle River, MD · 3300 Edwards Lane

Marinas
Phone

Chesapeake Yachting Center

2

Middle River, MD · 114 Carroll Island Road

Marinas
Phone

Edwards Boat Yard

2

Middle River, MD · 3420 Edwards Lane

Marinas
Phone

Long Beach Marina

2

Middle River, MD · 800 Chester Road

Marinas
Phone

Bowleys Marina

2

Middle River, MD · 1700 Bowleys Quarters Road

Marinas
Phone

Beacon Light Marina

2

Middle River, MD · 825 Bowleys Quarters Road

Marinas
Phone Email

Goeller's Seneca River Boatyard

2

Middle River, MD · 3814 Clarks Point Road

Marinas
Phone

Bush River Yacht Club

2

Abingdon, MD · 4001 East Baker Avenue

Marinas
Phone

Flying Point Marina

2

Edgewood, MD · 324 Flying Point Road

Marinas
Phone Email

Piney Narrows Yacht Haven

2

Chester, MD · 500 Piney Narrows Road

Marinas
Phone

Yacht Haven of Annapolis

2

Annapolis, MD · 326 1st Street

Marinas
Phone Email

Porter's Seneca Marina

2

Middle River, MD · 918 Seneca Park Road

Marinas
Phone

Loch Raven Fishing Center

2

Phoenix, MD · 12101 Dulaney Valley Road

Marinas
Phone

Bohemia Bay Yacht Harbour

2

Chesapeake City, MD · 1026 Town Point Road

Marinas
Phone Email

Bohemia Vista Marina

2

Chesapeake City, MD · 140 Vista Marina Road

Marinas
Phone

Two Rivers Yacht Basin

2

Chesapeake City, MD · 64 Two Rivers Lane

Marinas
Phone Email

Bay Bridge Marina

2

Stevensville, MD · 357 Pier One Road

Marinas
Phone

Skipjack Cove Yachting Resort

2

Georgetown, MD · 20 Duffy Creek Road

Marinas
Phone

Granary Marina

2

Georgetown, MD · 100 George Street

Marinas
Phone Email

Lee's Marina

2

Charlestown, MD · 726 Water Street

Marinas
Phone Email

North East River Marina

2

Charlestown, MD · 724 Water Street

Marinas
Phone Email

Charlestown Marina

2

Charlestown, MD · 4 Water Street

Marinas
Phone Email

Scott's Cove Marina

2

Deal Island, MD · 10551 Eldon Willing Road

Marinas
Phone

Tilghman Island Marina

2

Tilghman Island, MD · 6140 Mariners Court

Marinas
Phone

Tall Timbers Marina

2

Tall Timbers, MD · 18521 Herring Creek Road

Marinas
Phone Email

Collins Marine Railway

2

Deale, MD · 629 Deale Road

Marinas
Phone

Pirates Cove

2

MD

Marinas
Phone Email

Flag Harbor Marina

2

MD

Marinas
Phone Email

Cutter Marine

2

MD

Marinas
Phone

Essex Yacht Harbor Marina

2

Essex, MD · 500 Sandalwood Road

Marinas
Phone

James Creek Marina

2

MD

Marinas
Phone Email

St. Michaels Marina

2

MD

Marinas
Phone

Cutter Boardwalk Marina

2

MD

Marinas
Phone

Whitehall Marina

2

MD

Marinas
Phone Email
1 / 2 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