kopia lustrzana https://github.com/FacilMap/facilmap
164 wiersze
5.1 KiB
HTML
164 wiersze
5.1 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>facilmap-leaflet Example</title>
|
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
|
|
<style type="text/css">
|
|
html, body { width: 100%; height: 100%; margin: 0; }
|
|
body { display: flex; flex-direction: column; }
|
|
#map { flex-grow: 1; }
|
|
</style>
|
|
<script>
|
|
function log(name) {
|
|
return (...args) => { console.log(name, ...args); };
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div style="padding: 10px;">
|
|
<input
|
|
type="button"
|
|
value="Click listener"
|
|
onclick="L.FacilMap.addClickListener(map, log('click'), log('move'))"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Default view"
|
|
onclick="L.FacilMap.displayView(map)"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Hamburg"
|
|
onclick="L.FacilMap.displayView(map, { top: 53.959, left: 8.331, right: 9.650, bottom: 53.767, baseLayer: 'MpnW', layers: ['FrTo'] })"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Open map wqxygV4R506PlBlZ"
|
|
onclick="client.setPadId('wqxygV4R506PlBlZ').catch(log('setPadId error'))"
|
|
/>
|
|
<a href="http://localhost:40829/wqxygV4R506PlBlZ" target="_blank"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg=="></a>
|
|
|
|
<input
|
|
type="button"
|
|
value="Toggle filter name ~= "test""
|
|
onclick="map.setFmFilter(map.fmFilter ? undefined : 'name ~= "test"')"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Route 1"
|
|
onclick="client.setRoute({ routePoints: [{ lat: 52.51704, lon: 13.38886 }, { lat: 53.55034, lon: 10.00065 }], mode: 'car' })"
|
|
/>
|
|
<input
|
|
type="button"
|
|
value="Clear route 1"
|
|
onclick="client.clearRoute()"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Route 2"
|
|
onclick="client.setRoute({ routeId: 'route2', routePoints: [{ lat: 51.34063, lon: 12.37473 }, { lat: 53.07582, lon: 8.80716 }], mode: 'car' })"
|
|
/>
|
|
<input
|
|
type="button"
|
|
value="Clear route 2"
|
|
onclick="client.clearRoute({ routeId: 'route2' })"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Search for "Berlin""
|
|
onclick="client.find({ query: 'Berlin' }).then((res) => { searchResultsLayer.setResults(res) }).catch((err) => { console.error(err); })"
|
|
/>
|
|
<input
|
|
type="button"
|
|
value="Clear search"
|
|
onclick="searchResultsLayer.setResults([]);"
|
|
/>
|
|
|
|
<input
|
|
type="button"
|
|
value="Draw line"
|
|
onclick="drawLine()"
|
|
/>
|
|
<input
|
|
type="button"
|
|
value="End draw line"
|
|
onclick="linesLayer.endDrawLine(confirm('Save?'))"
|
|
/>
|
|
</div>
|
|
<div id="map"></div>
|
|
<script src="https://unpkg.com/leaflet"></script>
|
|
<script src="https://unpkg.com/socket.io-client/dist/socket.io.js"></script>
|
|
<script type="text/javascript" src="dist/facilmap-leaflet.full.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
var map = L.map('map',{
|
|
center: [0,0],
|
|
zoom: 5,
|
|
});
|
|
|
|
var client = new FacilMap.Client("http://localhost:40829/");
|
|
|
|
L.FacilMap.setVisibleLayers(map);
|
|
|
|
L.control.layers(L.FacilMap.baseLayers, L.FacilMap.overlays).addTo(map);
|
|
|
|
new L.FacilMap.BboxHandler(map, client).enable();
|
|
|
|
const markersLayer = new L.FacilMap.MarkersLayer(client).addTo(map)
|
|
.on("click", (e) => {
|
|
markersLayer.setHighlightedMarkers(new Set([e.layer.marker.id]));
|
|
linesLayer.setHighlightedLines(new Set());
|
|
searchResultsLayer.setHighlightedResults(new Set());
|
|
});
|
|
|
|
const linesLayer = new L.FacilMap.LinesLayer(client).addTo(map)
|
|
.on("click", (e) => {
|
|
L.DomEvent.stopPropagation(e);
|
|
markersLayer.setHighlightedMarkers(new Set());
|
|
linesLayer.setHighlightedLines(new Set([e.layer.line.id]));
|
|
searchResultsLayer.setHighlightedResults(new Set());
|
|
});
|
|
|
|
map.on("click", () => {
|
|
markersLayer.setHighlightedMarkers(new Set());
|
|
linesLayer.setHighlightedLines(new Set());
|
|
searchResultsLayer.setHighlightedResults(new Set());
|
|
});
|
|
|
|
const routeLayer1 = new L.FacilMap.RouteLayer(client, undefined, { raised: true }).addTo(map);
|
|
const routeLayer2 = new L.FacilMap.RouteLayer(client, "route2", { raised: true }).addTo(map);
|
|
const routeDragHandler = new L.FacilMap.RouteDragHandler(map, client).enable();
|
|
routeDragHandler.enableForLayer(routeLayer1);
|
|
routeDragHandler.enableForLayer(routeLayer2);
|
|
|
|
const searchResultsLayer = new L.FacilMap.SearchResultsLayer().addTo(map)
|
|
.on("click", (e) => {
|
|
L.DomEvent.stopPropagation(e);
|
|
markersLayer.setHighlightedMarkers(new Set());
|
|
linesLayer.setHighlightedLines(new Set());
|
|
searchResultsLayer.setHighlightedResults(new Set([ e.layer._fmSearchResult ]));
|
|
});
|
|
|
|
const hashHandler = new L.FacilMap.HashHandler(map, client).enable();
|
|
|
|
async function drawLine() {
|
|
try {
|
|
const lineTemplate = await client.getLineTemplate({ typeId: Object.keys(client.types).find((type) => client.types[type].type == "line") });
|
|
const result = await linesLayer.drawLine(lineTemplate);
|
|
console.log(result);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|