techeth-webmap/index.html

210 lines
10 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Illuna TechEth</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/leaflet.css" />
<link rel="stylesheet" href="css/Leaflet.Coordinates-0.1.4.css" />
<!--<link rel="stylesheet" href="css/font-awesome.css" />-->
<!-- FIXME make it local again -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
<link rel="stylesheet" href="css/leaflet.awesome-markers.css" />
<style type="text/css">
body {
height: 100%;
}
#map {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #111111;
}
.leaflet-container {
cursor: crosshair;
}
.leaflet-control-coordinates,
.leaflet-control-layers {
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
background-color:rgba(255,255,255,.85);
}
.awesome-marker i {
font-size: 18px;
margin-left: -1px;
}
.leaflet-bar a, .leaflet-bar a:hover,
.leaflet-control-layers-expanded,
.leaflet-control-coordinates, .leaflet-control-layers,
.leaflet-bar-part {
color: #fff;
background-color: #77B0D7;
opacity: .9;
font-weight: bold;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="js/leaflet.js"></script>
<script src="js/Leaflet.Coordinates-0.1.4.min.js"></script>
<script src="js/easy-button.js"></script>
<script src="js/auto-update.js"></script>
<script type="text/javascript" src="js/leaflet-hash.js"></script>
<script type="text/javascript" src="js/leaflet.ajax.js"></script>
<script type="text/javascript" src="js/leaflet.awesome-markers.js"></script>
<script>
var useWebsocket = true; // Set to true if you want websocket support
L.Projection.NoWrap = {
project: function (latlng) {
return new L.Point(latlng.lat, latlng.lng);
},
unproject: function (point, unbounded) {
return new L.LatLng(point.x, point.y, true);
}
};
L.CRS.Direct = L.Util.extend({}, L.CRS, {
code: 'Direct',
projection: L.Projection.NoWrap,
transformation: new L.Transformation(1.0/65536, 30928.0/65536, -1.0/65536, 34608.0/65536)
});
var techeth = new L.tileLayer('map/{z}/{x}/{y}.png', {
minZoom: 0,
maxZoom: 16,
attribution: 'The World of Illuna - TechEth World',
continuousWorld: false,
noWrap: true,
tms: true,
unloadInvisibleTiles: true
});
var teplayerurl = '/techeth-livemap/players'
var teplayers = L.geoJson.ajax(teplayerurl, {
pointToLayer: function(feature, latlng) {
return L.marker(latlng, {
icon: L.AwesomeMarkers.icon({
icon: 'male',
iconColor: '#fff',
prefix: 'fa',
markerColor: '#77B0D7'
}),
title: feature.properties.name
})
}
});
var rasterMaps = {
"TechEth": techeth,
// "TechEth": techeth
};
var latest = techeth
var overlayMaps = {'Players': teplayers, // 'TechEth Players': teplayers
};
var map = L.map('map', {
center: [0,0],
zoom: 7,
layers: [latest],
worldCopyJump: false,
crs: L.CRS.Direct});
L.control.coordinates({
position:"topright", //optional default "bootomright"
decimals:0, //optional default 4
decimalSeperator:".", //optional default "."
labelTemplateLat:"X: {y}", //optional default "Lat: {y}"
labelTemplateLng:"Y: {x}", //optional default "Lng: {x}"
enableUserInput:false, //optional default true
useDMS:false, //optional default false
useLatLngOrder: true //ordering of labels, default false-> lng-lat
}).addTo(map);
L.marker([0, -0], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Illuna Castle / Spawnpoint</strong><br>The castle was our original spawnpoint but melted graphicscards. It is inspired by Final Fantasy.<br>The current spawnpoint however is on the same position but far up in the sky.");
L.marker([-1656, 1288], {icon: L.AwesomeMarkers.icon({icon: 'info', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Lookin' for Integral Trees?</strong><br>This is one.");
L.marker([350, 52], {icon: L.AwesomeMarkers.icon({icon: 'location-arrow', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Illuna Travel Center</strong><br>Configure your Travelstation, visit players and places.");
L.marker([350, -50], {icon: L.AwesomeMarkers.icon({icon: 'candy-cane', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Illuna Event Area</strong><br>For most official Illuna events.");
L.marker([377, 128], {icon: L.AwesomeMarkers.icon({icon: 'envelope', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Illuna Post Office</strong><br>Don't forget to add your mailbox!");
L.marker([244, 40], {icon: L.AwesomeMarkers.icon({icon: 'landmark', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Illuna Kingdom</strong><br>Only for qualified builders.<br><a href=https://community.illuna-minetest.tk/t/special-selling-houses-in-the-kingdom/1083 target=_blank>Request your house today!</a>");
L.marker([-1874, -1977], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Illuna Beginner Village<br><code>[ South-West ]</code></strong><br>A great place to get started! The Teleporter is right next to the spawnpoint!");
L.marker([-2055, 2032], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Illuna Beginner Village<br><code>[ North-West ]</code></strong><br>A great place to get started! The Teleporter is right next to the spawnpoint!");
L.marker([2000, -2000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Illuna Beginner Village<br><code>[ South-East ]</code></strong><br>A great place to get started! The Teleporter is right next to the spawnpoint!");
L.marker([2030, 2115], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Illuna Beginner Village<br><code>[ North-East ]</code></strong><br>A great place to get started! The Teleporter is right next to the spawnpoint!");
L.marker([-5000, -5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ South-West ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([-5000, 0], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ West ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([-5000, 5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ North-West ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([0, -5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ South ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([0, 5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ North ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([5000, -5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ South-East ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([5000, 0], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ East ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([5000, 5000], {icon: L.AwesomeMarkers.icon({icon: 'star', prefix: 'fa', markerColor: 'lightblue'})}).addTo(map).bindPopup("<strong>Area 5000<br><code>[ North-East ]</code></strong><br>A great place to get started as experienced builder!");
L.marker([-1, -687], {icon: L.AwesomeMarkers.icon({icon: 'landmark', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>Stairway to space</strong><br>The official way through Asteroids right to the biopod layer on the top of our world.");
L.marker([282, -19], {icon: L.AwesomeMarkers.icon({icon: 'landmark', prefix: 'fa', markerColor: 'orange'})}).addTo(map).bindPopup("<strong>NoobCenter by brylie & elvin</strong><br>Free / Low-cost stuff a travelbox heading to cool places.");
Fullscreen = L.easyButton('fa-expand',
function (){
window.open(
'https://illuna-minetest.tk/techeth-livemap/',
'_blank'
)}
);
var manualUpdateControl;
if (useWebsocket && 'WebSocket' in window) {
L.autoUpdate('autoUpdate', function(pressed) {
var styleDec = manualUpdateControl.getContainer().style;
styleDec.visibility = pressed ? 'hidden' : 'visible';
},
teplayers);
}
var layersControl = new L.Control.Layers(rasterMaps, overlayMaps, {collapsed: false});
map.addControl(layersControl);
manualUpdateControl = L.easyButton('fa-sync',
function (){
var tiles = document.getElementsByTagName("img");
for (var i = 0; i < tiles.length; i++) {
var img = tiles[i];
var cl = img.getAttribute("class");
if (cl.indexOf("leaflet-tile-loaded") >= 0) {
var src = img.src;
var idx = src.lastIndexOf("#");
if (idx >= 0) {
src = src.substring(0, idx);
}
img.src = src + "#" + Math.random();
}
}
//map._resetView(map.getCenter(), map.getZoom(), false);
players.refresh("/techeth-livemap/players");
},
'Update view'
);
var hash = new L.Hash(map)
</script>
</body>
</html>