96 lines
3.7 KiB
HTML
96 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<!-- Meta -->
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>These3Words Map</title>
|
|
<!-- Style -->
|
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script>
|
|
<script src="/static/js/app.js"></script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
% if err:
|
|
<aside class="alert alert-danger" role="alert">Error: {{ err }}</aside>
|
|
% end
|
|
<main class="jumbotron">
|
|
<h1>These3Words Map</h1>
|
|
<p class="lead">
|
|
Remember a location anywhere in the world with just three words.
|
|
</p>
|
|
<p class="text-warning">This is hot off the press. We are still
|
|
finalising the word list so locations might not be
|
|
reproducible. So do not use it to mark the location of your
|
|
antarctic resupply drop quite yet!</p>
|
|
<p>
|
|
<ul class="lead">
|
|
<li>Type in a location to find out the three words by which to remember it (try <i>1600 Pennsylvania avenue ...</i>)</li>
|
|
<li>To find the location referenced by a set of three words given to you, type them in separated by a dash (try <i>{{ sydney }}</i>)</li>
|
|
<li>Go straight to exploring the map by clicking the <i>Find on Map</i> button, it will take you to Sydney</li>
|
|
</ul>
|
|
</p>
|
|
<p id="input3wordsContainer">
|
|
<input type="text" class="form-control" id="input3words" placeholder="1600 Pennsylvania .. OR {{ sydney }}">
|
|
</p>
|
|
<p>
|
|
<button id="button3words" class="btn btn-lg btn-primary">Find on Map</button>
|
|
</p>
|
|
<p class="lead">
|
|
Some interesting locations to try out:
|
|
<ul class="lead">
|
|
<li><a href="{{ battery }}">Battery Park, NYC</a></li>
|
|
<li><a href="{{ san_fran }}">Downtown San Francisco</a></li>
|
|
<li><a href="{{ sydney }}">Sydney, Australia</a></li>
|
|
</ul>
|
|
</p>
|
|
</main>
|
|
<footer>
|
|
<p class="text-center text-muted">Made with ♥ by <a href="https://betatim.github.io/">Tim</a> and <a href="https://dun.gs">Kevin</a>. <a href="https://github.com/betatim/these-3-words">Fork it on GitHub</a>.
|
|
</footer>
|
|
</div>
|
|
<script>
|
|
(function () {
|
|
var initialise = function () {
|
|
var default3words = '{{ sydney }}';
|
|
var searchbox = new google.maps.places.SearchBox(
|
|
(document.getElementById('input3words')));
|
|
|
|
google.maps.event.addListener(searchbox, 'places_changed', function() {
|
|
// Get the place details from the autocomplete object.
|
|
var places = searchbox.getPlaces();
|
|
if (places.length > 0) {
|
|
place = places[0];
|
|
These3Words.apiGetFromLatLng(place.geometry.location,
|
|
function(status, data) {
|
|
if (status >= 200 && status < 400) {
|
|
window.location = "/" + data.three;
|
|
}
|
|
});
|
|
} else {
|
|
var words = document.getElementById('input3words').value;
|
|
if (/\w+-\w+-\w+/.test(words)) {
|
|
window.location = '/' + words;
|
|
}
|
|
}
|
|
});
|
|
document.getElementById('button3words').addEventListener('click', function(evt) {
|
|
var threewords = document.getElementById('input3words').value;
|
|
if (threewords.length === 0) {
|
|
threewords = default3words;
|
|
}
|
|
if (/\w+-\w+-\w+/.test(threewords)) {
|
|
window.location = '/' + threewords;
|
|
} else {
|
|
document.getElementById('input3wordsContainer').classList.add('has-error');
|
|
}
|
|
});
|
|
};
|
|
window.addEventListener('load', initialise);
|
|
}());
|
|
</script>
|
|
</body>
|
|
</html>
|