Compare commits
2 Commits
1e3c22c159
...
e0970aacb9
Author | SHA1 | Date | |
---|---|---|---|
e0970aacb9 | |||
7b65ef6ee4 |
@ -1,12 +1,9 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
<title>LinuxWorks Minetest Map (unofficial)</title>
|
<title>LinuxWorks Minetest Map (unofficial)</title>
|
||||||
|
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
<link rel="stylesheet" href="fa/css/all.css">
|
<link rel="stylesheet" href="fa/css/all.css">
|
||||||
<link rel="stylesheet" href="awesomemarkers/leaflet.awesome-markers.css">
|
<link rel="stylesheet" href="awesomemarkers/leaflet.awesome-markers.css">
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
|
||||||
@ -20,13 +17,13 @@
|
|||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border: transparent;
|
border: transparent;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
opacity: 1.0;
|
opacity: 1.0;
|
||||||
color: white;
|
color: white;
|
||||||
text-shadow: 0px 0px 5px black;
|
text-shadow: 0px 0px 5px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.new {
|
a.new {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
var streetLabelsRenderer = new L.StreetLabels({
|
||||||
|
collisionFlg: true,
|
||||||
|
propertyName: 'name',
|
||||||
|
showLabelIf: function (layer) {
|
||||||
|
return layer.geometry.type == "LineString";
|
||||||
|
},
|
||||||
|
fontStyle: {
|
||||||
|
dynamicFontSize: false,
|
||||||
|
fontSize: 10,
|
||||||
|
fontSizeUnit: "px",
|
||||||
|
lineWidth: 4.0,
|
||||||
|
fillStyle: "black",
|
||||||
|
strokeStyle: "white",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
// Projection fix from: https://gis.stackexchange.com/questions/200865/leaflet-crs-simple-custom-scale
|
// Projection fix from: https://gis.stackexchange.com/questions/200865/leaflet-crs-simple-custom-scale
|
||||||
var factorx = 1 / 256 * 4;
|
var factorx = 1 / 256 * 4;
|
||||||
var factory = factorx;
|
var factory = factorx;
|
||||||
@ -18,8 +34,8 @@ L.CRS.pr = L.extend({}, L.CRS.Simple, {
|
|||||||
},
|
},
|
||||||
|
|
||||||
distance: function(latlng1, latlng2) {
|
distance: function(latlng1, latlng2) {
|
||||||
var dx = latlng2.lng - latlng1.lng,
|
var dx = latlng2.lng - latlng1.lng
|
||||||
dy = latlng2.lat - latlng1.lat;
|
, dy = latlng2.lat - latlng1.lat;
|
||||||
|
|
||||||
return Math.sqrt(dx * dx + dy * dy);
|
return Math.sqrt(dx * dx + dy * dy);
|
||||||
},
|
},
|
||||||
@ -28,6 +44,7 @@ L.CRS.pr = L.extend({}, L.CRS.Simple, {
|
|||||||
|
|
||||||
// Init map
|
// Init map
|
||||||
var mymap = L.map('mapid', {
|
var mymap = L.map('mapid', {
|
||||||
|
renderer: streetLabelsRenderer,
|
||||||
crs: L.CRS.pr
|
crs: L.CRS.pr
|
||||||
}).setView([0, 0], 6);
|
}).setView([0, 0], 6);
|
||||||
|
|
||||||
@ -58,7 +75,8 @@ function load_svg(name, url, active=1) {
|
|||||||
alert("Error: Could not load SVG map layer (" + name + ")");
|
alert("Error: Could not load SVG map layer (" + name + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
;
|
||||||
xhttp_ps.open("GET", url, true);
|
xhttp_ps.open("GET", url, true);
|
||||||
xhttp_ps.send();
|
xhttp_ps.send();
|
||||||
}
|
}
|
||||||
@ -70,8 +88,7 @@ function load_tiles(name, id) {
|
|||||||
minNativeZoom: 0,
|
minNativeZoom: 0,
|
||||||
minZoom: 0,
|
minZoom: 0,
|
||||||
noWrap: true,
|
noWrap: true,
|
||||||
attribution: 'Map data © <a href="https://wiki.linux-forks.de/mediawiki/index.php/Maps">Linux-Forks</a>, ' +
|
attribution: 'Map data © <a href="https://wiki.linux-forks.de/mediawiki/index.php/Maps">Linux-Forks</a>, ' + 'All rights reserved, ',
|
||||||
'All rights reserved, ',
|
|
||||||
id: id,
|
id: id,
|
||||||
tileSize: 256,
|
tileSize: 256,
|
||||||
zoomOffset: 0,
|
zoomOffset: 0,
|
||||||
@ -82,30 +99,45 @@ function load_tiles(name, id) {
|
|||||||
return satellite;
|
return satellite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function load_geojson(name, url, iconname, iconcolor, active=1, style={}) {
|
||||||
|
|
||||||
function load_geojson(name, url, iconname, iconcolor,active=1) {
|
|
||||||
var xhttp_ps = new XMLHttpRequest();
|
var xhttp_ps = new XMLHttpRequest();
|
||||||
xhttp_ps.onreadystatechange = function() {
|
xhttp_ps.onreadystatechange = function() {
|
||||||
if (this.readyState == 4) {
|
if (this.readyState == 4) {
|
||||||
if (this.status == 200) {
|
if (this.status == 200) {
|
||||||
var geojson = L.geoJSON(JSON.parse(xhttp_ps.responseText), {
|
switch (iconname) {
|
||||||
onEachFeature: function (feature, layer) {
|
case "street":
|
||||||
|
onEachFeature = null;
|
||||||
|
pointToLayer = null;
|
||||||
|
break;
|
||||||
|
default: /* else it is a marker with the specified icon */
|
||||||
|
onEachFeature = function(feature, layer) {
|
||||||
label = String(feature.properties.name)
|
label = String(feature.properties.name)
|
||||||
layer.bindPopup(
|
layer.bindPopup('<h1><a href="https://wiki.linux-forks.de/mediawiki/index.php/' + feature.properties.name + '">' + feature.properties.name + '</a> (' + feature.geometry.coordinates + ')</h1>' + '<p><img style="width:100%" src="' + feature.properties.image + '"></p>' + '<p>' + feature.properties.description + '</p>');
|
||||||
'<h1><a href="https://wiki.linux-forks.de/mediawiki/index.php/'+feature.properties.name+'">'+feature.properties.name+'</a> ('+feature.geometry.coordinates+')</h1>'+
|
layer.bindTooltip(label, {
|
||||||
'<p><img style="width:100%" src="' + feature.properties.image + '"></p>' +
|
permanent: true,
|
||||||
'<p>'+feature.properties.description+'</p>'
|
direction: "center",
|
||||||
);
|
className: "city-names"
|
||||||
layer.bindTooltip(label, {permanent: true, direction: "center", className: "city-names"}).openTooltip();
|
}).openTooltip();
|
||||||
},
|
};
|
||||||
pointToLayer: function(feature,latlng){
|
pointToLayer = function(feature, latlng) {
|
||||||
label = String(feature.properties.name)
|
label = String(feature.properties.name)
|
||||||
return new L.marker(latlng, {icon: L.AwesomeMarkers.icon({
|
return new L.marker(latlng,{
|
||||||
|
icon: L.AwesomeMarkers.icon({
|
||||||
icon: iconname,
|
icon: iconname,
|
||||||
markerColor: iconcolor
|
markerColor: iconcolor
|
||||||
})}).bindTooltip(label, {permanent: false, direction: "center", opacity: 0.7}).openTooltip();
|
})
|
||||||
|
}).bindTooltip(label, {
|
||||||
|
permanent: false,
|
||||||
|
direction: "center",
|
||||||
|
opacity: 0.7
|
||||||
|
}).openTooltip();
|
||||||
|
};
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
var geojson = L.geoJSON(JSON.parse(xhttp_ps.responseText), {
|
||||||
|
style: style,
|
||||||
|
onEachFeature: onEachFeature,
|
||||||
|
pointToLayer: pointToLayer
|
||||||
});
|
});
|
||||||
layers.addOverlay(geojson, name);
|
layers.addOverlay(geojson, name);
|
||||||
if (active)
|
if (active)
|
||||||
@ -115,7 +147,8 @@ function load_geojson(name, url, iconname, iconcolor,active=1) {
|
|||||||
alert("Error: Could not load geojson map layer (" + name + ").");
|
alert("Error: Could not load geojson map layer (" + name + ").");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
;
|
||||||
xhttp_ps.open("GET", url, true);
|
xhttp_ps.open("GET", url, true);
|
||||||
xhttp_ps.send();
|
xhttp_ps.send();
|
||||||
}
|
}
|
||||||
@ -145,10 +178,7 @@ var baseballIcon = L.AwesomeMarkers.icon({
|
|||||||
});
|
});
|
||||||
|
|
||||||
function onMapClick(e) {
|
function onMapClick(e) {
|
||||||
popup
|
popup.setLatLng(e.latlng).setContent("You clicked the map at " + e.latlng.toString()).openOn(mymap);
|
||||||
.setLatLng(e.latlng)
|
|
||||||
.setContent("You clicked the map at " + e.latlng.toString())
|
|
||||||
.openOn(mymap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mymap.on('click', onMapClick);
|
mymap.on('click', onMapClick);
|
||||||
|
Loading…
Reference in New Issue
Block a user