backend: Add support for streets
This commit is contained in:
parent
7b65ef6ee4
commit
e0970aacb9
@ -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;
|
||||||
@ -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);
|
||||||
|
|
||||||
@ -82,13 +99,18 @@ function load_tiles(name, id) {
|
|||||||
return satellite;
|
return satellite;
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_geojson(name, url, iconname, iconcolor, active=1) {
|
function load_geojson(name, url, iconname, iconcolor, active=1, style={}) {
|
||||||
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('<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>');
|
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>');
|
||||||
layer.bindTooltip(label, {
|
layer.bindTooltip(label, {
|
||||||
@ -96,8 +118,8 @@ function load_geojson(name, url, iconname, iconcolor, active=1) {
|
|||||||
direction: "center",
|
direction: "center",
|
||||||
className: "city-names"
|
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,{
|
return new L.marker(latlng,{
|
||||||
icon: L.AwesomeMarkers.icon({
|
icon: L.AwesomeMarkers.icon({
|
||||||
@ -109,7 +131,13 @@ function load_geojson(name, url, iconname, iconcolor, active=1) {
|
|||||||
direction: "center",
|
direction: "center",
|
||||||
opacity: 0.7
|
opacity: 0.7
|
||||||
}).openTooltip();
|
}).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)
|
||||||
|
Loading…
Reference in New Issue
Block a user