wip map
This commit is contained in:
parent
7b874d9afa
commit
5bec256a62
5 changed files with 90 additions and 11 deletions
|
|
@ -3,3 +3,7 @@
|
||||||
@import "tailwindcss/utilities";
|
@import "tailwindcss/utilities";
|
||||||
|
|
||||||
/* This file is for your main application CSS */
|
/* This file is for your main application CSS */
|
||||||
|
|
||||||
|
#map {
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,26 +16,81 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
// Include phoenix_html to handle method=PUT/DELETE in forms and buttons.
|
// Include phoenix_html to handle method=PUT/DELETE in forms and buttons.
|
||||||
import "phoenix_html"
|
import "phoenix_html";
|
||||||
// Establish Phoenix Socket and LiveView configuration.
|
// Establish Phoenix Socket and LiveView configuration.
|
||||||
import {Socket} from "phoenix"
|
import { Socket } from "phoenix";
|
||||||
import {LiveSocket} from "phoenix_live_view"
|
import { LiveSocket } from "phoenix_live_view";
|
||||||
import topbar from "../vendor/topbar"
|
import topbar from "../vendor/topbar";
|
||||||
|
|
||||||
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
|
let csrfToken = document
|
||||||
let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}})
|
.querySelector("meta[name='csrf-token']")
|
||||||
|
.getAttribute("content");
|
||||||
|
let liveSocket = new LiveSocket("/live", Socket, {
|
||||||
|
params: { _csrf_token: csrfToken },
|
||||||
|
});
|
||||||
|
|
||||||
// Show progress bar on live navigation and form submits
|
// Show progress bar on live navigation and form submits
|
||||||
topbar.config({barColors: {0: "#29d"}, shadowColor: "rgba(0, 0, 0, .3)"})
|
topbar.config({ barColors: { 0: "#29d" }, shadowColor: "rgba(0, 0, 0, .3)" });
|
||||||
window.addEventListener("phx:page-loading-start", info => topbar.delayedShow(200))
|
window.addEventListener("phx:page-loading-start", (info) =>
|
||||||
window.addEventListener("phx:page-loading-stop", info => topbar.hide())
|
topbar.delayedShow(200)
|
||||||
|
);
|
||||||
|
window.addEventListener("phx:page-loading-stop", (info) => topbar.hide());
|
||||||
|
|
||||||
// connect if there are any LiveViews on the page
|
// connect if there are any LiveViews on the page
|
||||||
liveSocket.connect()
|
liveSocket.connect();
|
||||||
|
|
||||||
// expose liveSocket on window for web console debug logs and latency simulation:
|
// expose liveSocket on window for web console debug logs and latency simulation:
|
||||||
// >> liveSocket.enableDebug()
|
// >> liveSocket.enableDebug()
|
||||||
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
|
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
|
||||||
// >> liveSocket.disableLatencySim()
|
// >> liveSocket.disableLatencySim()
|
||||||
window.liveSocket = liveSocket
|
window.liveSocket = liveSocket;
|
||||||
|
|
||||||
|
window.addEventListener("phx:page-loading-stop", (_info) => {
|
||||||
|
let data = {
|
||||||
|
markersByCallsign: {},
|
||||||
|
polylinesByCallsign: {},
|
||||||
|
recentCallsigns: [],
|
||||||
|
mapZoom: 10,
|
||||||
|
};
|
||||||
|
|
||||||
|
window.data = data;
|
||||||
|
|
||||||
|
// map stuff here
|
||||||
|
const MAX_ZOOM = 20;
|
||||||
|
|
||||||
|
// let map = L.map("map", {
|
||||||
|
// minZoom: 1,
|
||||||
|
// maxZoom: MAX_ZOOM,
|
||||||
|
// worldCopyJump: true,
|
||||||
|
// keyboard: true,
|
||||||
|
// }).setView([mapLatitude, mapLongitude], 12);
|
||||||
|
|
||||||
|
var map = L.map("map").setView([51.505, -0.09], 13);
|
||||||
|
|
||||||
|
let resizeMap = () => {
|
||||||
|
const height = $(window).height();
|
||||||
|
const width = $(window).width();
|
||||||
|
|
||||||
|
document.querySelector("#map").height(height).width(width);
|
||||||
|
map.invalidateSize();
|
||||||
|
};
|
||||||
|
|
||||||
|
// $(window)
|
||||||
|
// .on("resize", () => {
|
||||||
|
// resizeMap();
|
||||||
|
// })
|
||||||
|
// .trigger("resize");
|
||||||
|
|
||||||
|
L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
|
||||||
|
maxZoom: 19,
|
||||||
|
attribution:
|
||||||
|
'© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
|
||||||
|
}).addTo(map);
|
||||||
|
|
||||||
|
// let markerGroup = L.markerClusterGroup({
|
||||||
|
// removeOutsideVisibleBounds: true,
|
||||||
|
// disableClusteringAtZoom: 8,
|
||||||
|
// });
|
||||||
|
|
||||||
|
// map.addLayer(markerGroup);
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,8 @@ defmodule AprsWeb.PageController do
|
||||||
# so skip the default app layout.
|
# so skip the default app layout.
|
||||||
render(conn, :home, layout: false)
|
render(conn, :home, layout: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def map(conn, _params) do
|
||||||
|
render(conn, :map, layout: false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
15
lib/aprs_web/controllers/page_html/map.html.heex
Normal file
15
lib/aprs_web/controllers/page_html/map.html.heex
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"
|
||||||
|
integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI="
|
||||||
|
crossorigin=""
|
||||||
|
/>
|
||||||
|
<!-- Make sure you put this AFTER Leaflet's CSS -->
|
||||||
|
<script
|
||||||
|
src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"
|
||||||
|
integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM="
|
||||||
|
crossorigin=""
|
||||||
|
>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="map"></div>
|
||||||
|
|
@ -21,6 +21,7 @@ defmodule AprsWeb.Router do
|
||||||
pipe_through :browser
|
pipe_through :browser
|
||||||
|
|
||||||
get "/", PageController, :home
|
get "/", PageController, :home
|
||||||
|
get "/map", PageController, :map
|
||||||
end
|
end
|
||||||
|
|
||||||
# Other scopes may use custom stacks.
|
# Other scopes may use custom stacks.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue