OSM2IPFS/earth/index.html

231 lines
7.0 KiB
HTML
Raw Normal View History

2023-08-24 18:26:16 +02:00
<!DOCTYPE html>
<html>
<head>
<title>U Planet Infinity project 0.01° x 0.01°</title>
2023-08-24 18:26:16 +02:00
<meta charset="UTF-8">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="jquery-ui.min.css">
<script type="text/javascript" src="requestanimationframe.polyfill.js"></script>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-ui.0.min.js"></script>
<script type="text/javascript" src="sphere-hacked.js"></script>
<script type="text/javascript" src="jquery.earth-3d.js"></script>
<script type="text/javascript" src="world.js"></script>
<script type="text/javascript" src="demo.js"></script>
<script type="text/javascript">
examples['simple_mars'] = function() {
$('#sphere').earth3d({
texture: 'maps/mars1024x1024.jpg', // texture used by G1Wish planet
dragElement: $('#locations') // where do we catch the mouse drag
});
};
2023-11-21 23:47:59 +01:00
function getCoordinates() {
const addressInput = document.getElementById('address');
const address = addressInput.value;
// Replace spaces with '+' for the URL
const formattedAddress = address.replace(/ /g, '+');
// Make a request to the Nominatim API
fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${formattedAddress}`)
.then(response => response.json())
.then(data => {
if (data.length > 0) {
const latitude = data[0].lat;
const longitude = data[0].lon;
const lat = parseFloat(data[0].lat).toFixed(2);
const lon = parseFloat(data[0].lon).toFixed(2);
window.location.replace(`map_render.html?southWestLat=${lat}&southWestLon=${lon}&deg=0.01`);
} else {
document.getElementById('result').innerText = 'Coordinates not found. Clic on surrounding dots to zoom in.';
}
})
.catch(error => {
console.error('Error:', error);
document.getElementById('result').innerText = 'An error occurred while fetching coordinates.';
});
}
// Add event listener for the "Enter" key
document.getElementById('address').addEventListener('keypress', function (e) {
if (e.key === 'Enter') {
getCoordinates();
}
});
2023-08-24 18:26:16 +02:00
</script>
<style>
body {
padding: 0;
margin: 0;
font-family: sans-serif;
}
.slidecontainer {
width: 80%;
margin: 0 auto;
text-align: center;
}
.gif-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.gif-container img {
margin: 10px;
max-width: 200px;
}
.slider {
width: 100%;
text-align: center;
}
.slider #prev {
float: left;
font-size: 40px;
}
.slider #next {
float: right;
font-size: 40px;
}
#glow-shadows.earth {
background: url(maps/earth-glow-shadows.png);
}
#glow-shadows.mars {
background: url(maps/mars-glow-shadows.png);
}
.flight {
position: absolute;
width: 24px;
height: 25px;
left: 10px;
top: 10px;
background: url(maps/plain.png);
background-size: 100% 100%;
margin-left: -12px;
margin-top: -12.5px;
cursor: pointer;
}
2023-10-19 17:36:02 +02:00
.button {
background-color: #3498db;
color: #fff;
padding: 10px 20px;
border: none;
cursor: pointer;
}
2023-08-24 18:26:16 +02:00
</style>
<link rel="stylesheet" href="earth.css">
</head>
<body>
2023-09-08 00:15:47 +02:00
<h1>♥ U Planet ♥</h1>
2023-11-21 23:47:59 +01:00
<a href="login/">ACCESS</a>
2023-08-24 18:26:16 +02:00
<div id="container">
<br><br>
<br><br>
<div id="sphere"></div>
<div id="glow-shadows" class="earth"></div>
<div id="flights"></div>
<div id="locations"></div>
</div>
2023-08-24 18:26:16 +02:00
<div class="choose_example">
2023-09-08 00:15:47 +02:00
Planet : <select id="example">
2023-08-24 18:26:16 +02:00
<!--
<option value="simple">Simple earth</option>
<option value="simple_tilted">Simple tilted earth</option>
-->
2023-09-08 00:15:47 +02:00
<option value="simple_mars">Mars</option>
2023-08-24 18:26:16 +02:00
<!--
<option value="flights">Earth with locations and flights</option>
-->
2023-09-08 00:15:47 +02:00
<option value="locations" selected >Earth</option>
2023-08-24 18:26:16 +02:00
</select>
</div>
2023-11-21 23:47:59 +01:00
<h2></h2>
<form id="addressForm">
<label for="address">Address: </label>
<input type="text" id="address" size=30 required>
<button type="button" onclick="getCoordinates()">Go There</button>
</form>
<p id="result"><a href="mailto:support@qo-op.com">Contact us</a> to add your own UPlanet</p>
2023-09-08 00:15:47 +02:00
<!--
2023-08-24 18:26:16 +02:00
<div class="code">
<a href="#" onclick="$('#example_code').show(); $(this).hide().siblings('a').show(); return false;">Show code</a>
<a href="#" style="display: none;" onclick="$('#example_code').hide(); $(this).hide().siblings('a').show(); return false;">Hide code</a>
<textarea id="example_code" onclick="this.focus();this.select();"></textarea>
</div>
-->
2023-10-19 17:36:02 +02:00
<script>
// Function to extract URL parameters
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
const regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
const results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}
const defaultIPNS = '';
2023-11-17 03:28:00 +01:00
const defaultIPFS = '';
const defaultPUB = '';
const myIPFS = getUrlParameter('ipfs') || defaultIPFS;
const myPUBKEY = getUrlParameter('g1pub') || defaultPUB;
2023-10-19 17:36:02 +02:00
const sectorIPNS = getUrlParameter('ipns') || defaultIPNS;
2023-11-17 03:28:00 +01:00
console.log('myIPFS: /ipfs/', myIPFS);
console.log('myPUBKEY: /g1pub/', myPUBKEY);
2023-10-19 17:36:02 +02:00
console.log('sectorIPNS: /ipns/', sectorIPNS);
2023-11-17 03:28:00 +01:00
if (sectorIPNS !== '' ) {
2023-10-19 17:36:02 +02:00
const buttonContainer = document.createElement('div');
buttonContainer.id = 'button-container'
buttonContainer.style.position = 'absolute';
buttonContainer.style.bottom = '0px';
buttonContainer.style.left = '0px';
buttonContainer.style.width = '200px';
buttonContainer.style.height = '150px';
buttonContainer.style.zIndex = '1001';
buttonContainer.style.display = 'flex';
buttonContainer.style.flexDirection = 'column';
buttonContainer.style.alignItems = 'center';
buttonContainer.style.justifyContent = 'center';
const button = document.createElement('button');
button.innerText = 'EXPLORE';
button.className = 'button';
// Add an event listener to the button
button.addEventListener('click', function() {
window.open( '/ipns/'+ sectorIPNS, "AstroTab");
});
// Append the button to the button container
buttonContainer.appendChild(button);
document.body.appendChild(buttonContainer);
}
</script>
2023-08-24 18:26:16 +02:00
</body></html>