Places to Stay
See and Do
Use ctrl + scroll to zoom the map
Use two fingers to move the map
Montana's Medicine Lodge Adventures
Dillon, MT
More Info
Lonetree Campground
Dillon, MT
More Info
Hap Hawkins Campground
Dillon, MT
More Info
Beaverhead Campground
Dillon, MT
More Info
Cameahwait Campground
Dillon, MT
More Info
West Cameahwait Campground
Dillon, MT
More Info
East Creek Campground
Lima, MT
More Info
The Peat Hotel & Steakhouse
Lima, MT
More Info
Mountain View Motel
Lima, MT
More Info
Armstead Campground
Dillon, MT
More Info
Mountain View RV Park
Lima, MT
More Info
Jan's Cabins
Lima, MT
More Info
Bannack State Park
Bannack, MT
More Info
Barretts Station Park Campground
Dillon, MT
More Info
The Gatehouse - Tight Line Adventures
Dillon, MT
More Info
Expedition Lodge - Tight Line Adventures
Dillon, MT
More Info
Goose Down Ranch
Dillon, MT
More Info
',iconSize: [48, 72],iconAnchor: [24, 72],popupAnchor: [0, -60]});}else {icon = L.divIcon({className: 'map-numbered-marker',html: '',iconSize: [item.MapMarker.Width, item.MapMarker.Height],iconAnchor: [item.MapMarker.Width / 2, item.MapMarker.Height],popupAnchor: [0, item.MapMarker.AnchorPoint]});}}else {var faIcon = "fa-map-marker";if (item.MapMarker.Url) {faIcon = item.MapMarker.Url;}if (item.MapMarker.IsNumbered) {icon = L.divIcon({className: 'map-numbered-marker',html: "" + markerTag + "",iconSize: [30, 36],iconAnchor: [15, 36],popupAnchor: [0, -72]});}else {icon = L.divIcon({className: 'map-numbered-marker',html: "",iconSize: [30, 24],iconAnchor: [15, 24],popupAnchor: [0, -24]});}}var marker = L.marker([item.Latitude, item.Longitude], {icon: icon});marker.bindPopup(item.PopupHtml);//marker.on('click', MarkerClicked);marker.getPopup().on('remove', PopupRemoved);markerArray.push(marker);listingsmap.addLayer(markerArray[currentNumber]);currentNumber++;}});}}if (showRegion) {var shpFile = new L.Shapefile(window.location.origin + "/js/leaflet/regionshape/TravelMontana1994.zip", {onEachFeature: function(feature, layer) {if ( feature.properties && feature.properties.NAME == 'Gold West Country') {listingsmap.fitBounds(layer.getBounds());}},filter: function(feature) {if ( feature.properties && feature.properties.NAME == 'Gold West Country') {return true;}},style: function (geoJsonFeature) {return {color: '#b94900',fillColor: 'gray'};}});shpFile.addTo(listingsmap);shpFile.once("data:error", function(e) {if (count > 1) {listingsmap.fitBounds([[bounds.maxLat, bounds.minLng],[bounds.minLat, bounds.maxLng]]);}else if (count == 1) {listingsmap.setView([lat, lng], 10);}});}}function FullscreenMap(currentMap, expanding) {if (expanding) {var currentLength = markerArray.length;mapList.forEach(function (item, index) {if (!pageList.some(e => e.Name == item.Name)) {if (item.Lat != 0 && item.Lng != 0) {var marker = L.marker([item.Lat, item.Lng], {color: '#4A767F'});if (item.ListingId) {marker.bindPopup('' + item.Name + '');}else {marker.bindPopup('' + item.Name + '');}marker.on('click', MarkerClicked);marker.getPopup().on('remove', PopupRemoved);markerArray.push(marker);currentMap.addLayer(markerArray[currentLength]);currentLength++;}}});}else {var removeLength = markerArray.length - pageList.length;for (var i = 0; i < removeLength; i++) {currentMap.removeLayer(markerArray[markerArray.length - 1]);markerArray.pop();}}}function SetBounds(latitude, longitude, bounds) {bounds.maxLat = latitude > bounds.maxLat ? latitude : bounds.maxLat;bounds.minLat = latitude < bounds.minLat ? latitude : bounds.minLat;bounds.maxLng = longitude > bounds.maxLng ? longitude : bounds.maxLng;bounds.minLng = longitude < bounds.minLng ? longitude : bounds.minLng;}function SetBoundsFromCenter(latitude, longitude, bounds) {var maxLatDistance = 0;var maxLngDistance = 0;maxLatDistance = Math.abs(bounds.maxLat - latitude) > maxLatDistance ? Math.abs(bounds.maxLat - latitude) : maxLatDistance;maxLatDistance = Math.abs(bounds.minLat - latitude) > maxLatDistance ? Math.abs(bounds.minLat - latitude) : maxLatDistance;if (maxLatDistance > 0) {bounds.maxLat = latitude + maxLatDistance;bounds.minLat = latitude - maxLatDistance;}maxLngDistance = Math.abs(bounds.maxLng - longitude) > maxLngDistance ? Math.abs(bounds.maxLng - longitude) : maxLngDistance;maxLngDistance = Math.abs(bounds.minLng - longitude) > maxLngDistance ? Math.abs(bounds.minLng - longitude) : maxLngDistance;if (maxLngDistance > 0) {bounds.maxLng = longitude + maxLngDistance;bounds.minLng = longitude - maxLngDistance;}return bounds;}function GetBoundsZoomLevel(bounds, mapDivSelector) {var WORLD_DIM = { height: 256, width: 256 };var ZOOM_MAX = 12;var $mapDiv = $(mapDivSelector);var mapDim = { height: $mapDiv.height(), width: $mapDiv.width() };function latRad(lat) {var sin = Math.sin(lat * Math.PI / 180);var radX2 = Math.log((1 + sin) / (1 - sin)) / 2;return Math.max(Math.min(radX2, Math.PI), -Math.PI) / 2;}function zoom(mapPx, worldPx, fraction) {return Math.floor(Math.log(mapPx / worldPx / fraction) / Math.LN2);}var latFraction = (latRad(bounds.maxLat) - latRad(bounds.minLat)) / Math.PI;var lngFraction = ((bounds.maxLng - bounds.minLng) < 0 ? (bounds.maxLng - bounds.minLng) + 360 : (bounds.maxLng - bounds.minLng)) / 360;var latZoom = zoom(mapDim.height, WORLD_DIM.height, latFraction);var lngZoom = zoom(mapDim.width, WORLD_DIM.width, lngFraction);return Math.min(latZoom, lngZoom, ZOOM_MAX);}function PopulateTabbedMap(tabId) {var removeLength = markerArray.length;for (var i = 0; i < removeLength; i++) {listingsmap.removeLayer(markerArray[markerArray.length - 1]);markerArray.pop();}var color = $('#' + tabId).css('background-color');var currentNumber = 0;if (listJson[tabId].Listings) {listJson[tabId].Listings.forEach(function (item, index) {if (item.Latitude != 0 && item.Longitude != 0) {markerTag = currentNumber + 1;var marker = L.marker([item.Latitude, item.Longitude], {icon: L.divIcon({className: 'map-numbered-marker',html: "" + markerTag + "",iconSize: [30, 36],iconAnchor: [15, 36],popupAnchor: [0, -72]})});if (item.ListingId) {marker.bindPopup('' + item.Name + '');}else {marker.bindPopup('' + item.Name + '');}marker.on('click', MarkerClicked);marker.getPopup().on('remove', PopupRemoved);markerArray.push(marker);listingsmap.addLayer(markerArray[currentNumber]);currentNumber++;}});}if (listJson[tabId].Events) {listJson[tabId].Events.forEach(function (item, index) {if (item.Lat != 0 && item.Lng != 0) {markerTag = currentNumber + 1;var marker = L.marker([item.Lat, item.Lng], {icon: L.divIcon({className: 'map-numbered-marker',html: "" + markerTag + "",iconSize: [30, 36],iconAnchor: [15, 36],popupAnchor: [0, -72]})});if (item.Slug) {marker.bindPopup('' + item.Name + '');}else {marker.bindPopup('' + item.Name + '');}marker.on('click', MarkerClicked);marker.getPopup().on('remove', PopupRemoved);markerArray.push(marker);listingsmap.addLayer(markerArray[currentNumber]);currentNumber++;}});}if (listArray[0][1].Items) {listArray[0][1].Items.forEach(function (item, index) {if (item.Latitude != 0 && item.Longitude != 0) {markerTag = currentNumber + 1;var icon;if (item.MapMarker) {icon = L.divIcon({className: 'map-numbered-marker',html: '
' + markerTag + '
',iconSize: [48, 72],iconAnchor: [24, 72],popupAnchor: [0, -60]});}else {icon = L.divIcon({className: 'map-numbered-marker',html: "" + markerTag + "",iconSize: [30, 36],iconAnchor: [15, 36],popupAnchor: [0, -72]})}var marker = L.marker([item.Latitude, item.Longitude], {icon: icon});marker.bindPopup(item.Name);//marker.on('click', MarkerClicked);marker.getPopup().on('remove', PopupRemoved);markerArray.push(marker);listingsmap.addLayer(markerArray[currentNumber]);currentNumber++;}});}}function MarkerClicked(e) {listingsmap.panTo(e.latlng);SetSelectedMarkerIcon(markerArray.indexOf(e.target));}function PopupRemoved(e) {RemoveSelectedMarker();}function RemoveSelectedMarker() {if (selectedMarker && previousIcon) {selectedMarker.setIcon(previousIcon);selectedMarker._icon.style.zIndex = parseInt(selectedMarker._icon.style.zIndex) - 100;selectedMarker = null;previousIcon = null;}}function SetSelectedMarkerIcon(index) {if (index >= 0) {if (selectedMarker && previousIcon) {selectedMarker.setIcon(previousIcon);selectedMarker._icon.style.zIndex = parseInt(selectedMarker._icon.style.zIndex) - 100;}selectedMarker = markerArray[index];previousIcon = selectedMarker.options.icon;markerArray[index].setIcon(L.divIcon({className: 'map-numbered-marker',html: "" + (index + 1) + "",iconSize: [54, 72],iconAnchor: [27, 72],popupAnchor: [0, -72]}));selectedMarker._icon.style.zIndex = parseInt(selectedMarker._icon.style.zIndex) + 100;}}});}