live URL hash rewriting as you drag/zoom instead of permalink at bottom, hard named permalinks such as foo.com/#/jeffs-island
This commit is contained in:
@@ -1,25 +1,13 @@
|
|||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
<<<<<<< HEAD:web_assets/style.css
|
|
||||||
font-family: lucida grande, lucida sans console, sans-serif;
|
font-family: lucida grande, lucida sans console, sans-serif;
|
||||||
}
|
}
|
||||||
body { height: 100%; margin: 0px; padding: 0px ; background-color: #000; }
|
body { height: 100%; margin: 0px; padding: 0px ; background-color: #000; }
|
||||||
#mcmap { height: 100% }
|
|
||||||
=======
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mcmap {
|
#mcmap {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
>>>>>>> f20d81c39f0302a44e02a6f42f6eb0d13b9fcc18:web_assets/overviewer.css
|
|
||||||
|
|
||||||
#mcmap div div a img, #mcmap div div div a {
|
#mcmap div div a img, #mcmap div div div a {
|
||||||
display:none;
|
display:none;
|
||||||
@@ -43,14 +31,13 @@ body {
|
|||||||
#customControl {
|
#customControl {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
|
display:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD:web_assets/style.css
|
|
||||||
#signControl > div#top {
|
#signControl > div#top {
|
||||||
display:none;
|
display:none;
|
||||||
=======
|
}
|
||||||
#customControl > div#top {
|
#customControl > div#top {
|
||||||
>>>>>>> f20d81c39f0302a44e02a6f42f6eb0d13b9fcc18:web_assets/overviewer.css
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border: 2px solid #000;
|
border: 2px solid #000;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -76,6 +63,7 @@ body {
|
|||||||
|
|
||||||
|
|
||||||
#link {
|
#link {
|
||||||
|
display:none;
|
||||||
background-color: #fff; /* fallback */
|
background-color: #fff; /* fallback */
|
||||||
background-color: rgba(255,255,255,0.55);
|
background-color: rgba(255,255,255,0.55);
|
||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ var overviewer = {
|
|||||||
overviewer.util.initializeMarkers();
|
overviewer.util.initializeMarkers();
|
||||||
overviewer.util.initializeRegions();
|
overviewer.util.initializeRegions();
|
||||||
overviewer.util.createMapControls();
|
overviewer.util.createMapControls();
|
||||||
|
setInterval(overviewer.goToHash,500);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* This adds some methods to these classes because Javascript is stupid
|
* This adds some methods to these classes because Javascript is stupid
|
||||||
@@ -141,11 +142,14 @@ var overviewer = {
|
|||||||
var defaultCenter = overviewer.util.fromWorldToLatLng(
|
var defaultCenter = overviewer.util.fromWorldToLatLng(
|
||||||
overviewerConfig.map.center[0], overviewerConfig.map.center[1],
|
overviewerConfig.map.center[0], overviewerConfig.map.center[1],
|
||||||
overviewerConfig.map.center[2]);
|
overviewerConfig.map.center[2]);
|
||||||
|
|
||||||
var lat = defaultCenter.lat();
|
var lat = defaultCenter.lat();
|
||||||
var lng = defaultCenter.lng();
|
var lng = defaultCenter.lng();
|
||||||
var zoom = overviewerConfig.map.defaultZoom;
|
var zoom = overviewerConfig.map.defaultZoom;
|
||||||
|
|
||||||
var mapcenter;
|
var mapcenter;
|
||||||
queryParams = overviewer.util.parseQueryString();
|
queryParams = overviewer.util.parseQueryString();
|
||||||
|
queryParams = overviewer.readHash(queryParams);
|
||||||
if (queryParams.lat) {
|
if (queryParams.lat) {
|
||||||
lat = parseFloat(queryParams.lat);
|
lat = parseFloat(queryParams.lat);
|
||||||
}
|
}
|
||||||
@@ -162,10 +166,10 @@ var overviewer = {
|
|||||||
if (zoom < 0 && zoom + overviewerConfig.map.maxZoom >= 0) {
|
if (zoom < 0 && zoom + overviewerConfig.map.maxZoom >= 0) {
|
||||||
//if zoom is negative, try to treat as "zoom out from max zoom"
|
//if zoom is negative, try to treat as "zoom out from max zoom"
|
||||||
zoom += overviewerConfig.map.maxZoom;
|
zoom += overviewerConfig.map.maxZoom;
|
||||||
} else {
|
} //else {
|
||||||
//fall back to default zoom
|
//fall back to default zoom
|
||||||
zoom = overviewerConfig.map.defaultZoom;
|
//zoom = overviewerConfig.map.defaultZoom;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (queryParams.x && queryParams.y && queryParams.z) {
|
if (queryParams.x && queryParams.y && queryParams.z) {
|
||||||
@@ -234,6 +238,14 @@ var overviewer = {
|
|||||||
});
|
});
|
||||||
// We can now set the map to use the 'coordinate' map type
|
// We can now set the map to use the 'coordinate' map type
|
||||||
overviewer.map.setMapTypeId(overviewer.util.getDefaultMapTypeId());
|
overviewer.map.setMapTypeId(overviewer.util.getDefaultMapTypeId());
|
||||||
|
|
||||||
|
// Make the link again whenever the map changes
|
||||||
|
google.maps.event.addListener(overviewer.map, 'zoom_changed', function() {
|
||||||
|
overviewer.setHash();
|
||||||
|
});
|
||||||
|
google.maps.event.addListener(overviewer.map, 'center_changed', function() {
|
||||||
|
overviewer.setHash();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Read through overviewer.collections.markerDatas and create Marker
|
* Read through overviewer.collections.markerDatas and create Marker
|
||||||
@@ -301,7 +313,7 @@ var overviewer = {
|
|||||||
'map': overviewer.map,
|
'map': overviewer.map,
|
||||||
'title': jQuery.trim(item.msg),
|
'title': jQuery.trim(item.msg),
|
||||||
'icon': iconURL,
|
'icon': iconURL,
|
||||||
'visible': false
|
'visible': true
|
||||||
});
|
});
|
||||||
overviewer.util.debug(label);
|
overviewer.util.debug(label);
|
||||||
overviewer.collections.markers[label].push(marker);
|
overviewer.collections.markers[label].push(marker);
|
||||||
@@ -889,5 +901,54 @@ var overviewer = {
|
|||||||
return(urlBase + url);
|
return(urlBase + url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
setHash: function() {
|
||||||
|
var hash = window.location.hash
|
||||||
|
var params = hash.split("/")
|
||||||
|
if (params.length > 1) {
|
||||||
|
if (overviewer.permalinks[params[1]]) {
|
||||||
|
hard_permalink = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
location.hash = "#/"+overviewer.map.getCenter().lat().toFixed(3)+"/"+overviewer.map.getCenter().lng().toFixed(3)+"/"+overviewer.map.getZoom();
|
||||||
|
},
|
||||||
|
permalinks: {
|
||||||
|
"rent": {
|
||||||
|
text: "Rent is $200/month jeff@ unterbahn.com",
|
||||||
|
position: {lat: 0.546875, lng: 0.48046875, zoom: 6}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openSign: function(markerName) {
|
||||||
|
var marker = null;
|
||||||
|
for (i=0;i<markerCollection.All.length;i++) {
|
||||||
|
if (markerCollection.All[i].title == overviewer.permalinks[markerName]) marker = markerCollection.All[i];
|
||||||
|
}
|
||||||
|
if (marker) {
|
||||||
|
if (prevInfoWindow)
|
||||||
|
prevInfoWindow.close()
|
||||||
|
marker.infowindow.open(map,marker);
|
||||||
|
prevInfoWindow = marker.infowindow
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readHash: function(mapOptions) {
|
||||||
|
mapOptions = mapOptions || {}
|
||||||
|
var hash = window.location.hash
|
||||||
|
var params = hash.split("/")
|
||||||
|
if (params.length > 1) {
|
||||||
|
if (params[1] == "rent") {
|
||||||
|
mapOptions = overviewer.permalinks[params[1]].position
|
||||||
|
if (overviewer.collections.markers.All) openSign("rent");
|
||||||
|
} else {
|
||||||
|
mapOptions.lat = parseFloat(params[1])
|
||||||
|
mapOptions.lng = parseFloat(params[2])
|
||||||
|
mapOptions.zoom = parseInt(params[3])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mapOptions
|
||||||
|
},
|
||||||
|
goToHash: function() {
|
||||||
|
mapOptions = overviewer.readHash();
|
||||||
|
if (overviewer.map) overviewer.map.setCenter(new google.maps.LatLng(mapOptions.lat, mapOptions.lng))
|
||||||
|
if (overviewer.map) overviewer.map.setZoom(mapOptions.zoom)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user