Add resctangle after clic (landblock rectangle)
This commit is contained in:
parent
94012aed45
commit
8a64f94659
2 changed files with 38 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import InitMap, { map } from "./map.js";
|
import InitMap, { map } from "./map.js";
|
||||||
import InitOverlayPoi from "./overlays/overlaysPoi.js";
|
import InitOverlayPoi from "./overlays/overlaysPoi.js";
|
||||||
import InitOverlayCoord, { UpdateCoord } from "./overlays/overlaysCoord.js";
|
import InitOverlayCoord, { RectLandBlock, UpdateCoord } from "./overlays/overlaysCoord.js";
|
||||||
import InitOverlayPlayer from "./overlays/overlaysPlayer.js";
|
import InitOverlayPlayer from "./overlays/overlaysPlayer.js";
|
||||||
|
|
||||||
//Init leaflet
|
//Init leaflet
|
||||||
|
|
@ -12,6 +12,7 @@ InitOverlayCoord(map);
|
||||||
|
|
||||||
map.on("click", function (ev) {
|
map.on("click", function (ev) {
|
||||||
UpdateCoord(ev, map);
|
UpdateCoord(ev, map);
|
||||||
|
RectLandBlock(ev, map);
|
||||||
});
|
});
|
||||||
|
|
||||||
//Interval Player Overlay
|
//Interval Player Overlay
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
import * as math from "../modules/math.js";
|
import * as math from "../modules/math.js";
|
||||||
|
|
||||||
|
var boundsMax = [
|
||||||
|
[-255, 0],
|
||||||
|
[0, 255],
|
||||||
|
];
|
||||||
|
|
||||||
var coordOverlay = L.control({ position: "bottomleft" });
|
var coordOverlay = L.control({ position: "bottomleft" });
|
||||||
|
var rectangle = L.rectangle(boundsMax, {color: "#ff7800", weight: 1});
|
||||||
|
|
||||||
coordOverlay.onAdd = function (map) {
|
coordOverlay.onAdd = function (map) {
|
||||||
this._div = L.DomUtil.create("div", "coordinates-overlay");
|
this._div = L.DomUtil.create("div", "coordinates-overlay");
|
||||||
|
|
@ -19,6 +25,36 @@ coordOverlay.update = function (coord, cardinal) {
|
||||||
+ cardinal;
|
+ cardinal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export function RectLandBlock(ev, map) {
|
||||||
|
rectangle.remove();
|
||||||
|
// Latitude et longitude initiales du coin supérieur gauche du rectangle
|
||||||
|
var latlng = ev.latlng;
|
||||||
|
|
||||||
|
//4352
|
||||||
|
var pointATmp = map.project(latlng, 4);
|
||||||
|
|
||||||
|
const blockSize = 16; // Taille d'un bloc
|
||||||
|
var testReverse = Math.floor((4080 - pointATmp.y) / blockSize);
|
||||||
|
var pointA = L.point(Math.round(pointATmp.x), Math.round(pointATmp.y));
|
||||||
|
const blockX = Math.floor(pointA.x / blockSize) * 16;
|
||||||
|
const blockY = Math.floor(pointA.y / blockSize) * 16;
|
||||||
|
|
||||||
|
var landX = blockX / 16;
|
||||||
|
|
||||||
|
var pointAn = L.point(blockX, blockY);
|
||||||
|
var pointB = L.point(blockX + blockSize, blockY + blockSize);
|
||||||
|
console.log(pointAn, pointB);
|
||||||
|
var latlngA = map.unproject(pointAn, 4);
|
||||||
|
var latlngB = map.unproject(pointB, 4);
|
||||||
|
|
||||||
|
// Création du rectangle
|
||||||
|
var bounds = L.latLngBounds(latlngA, latlngB);
|
||||||
|
rectangle = L.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map)
|
||||||
|
.bindPopup("LandBlock : 0x" + landX.toString(16).toUpperCase().padStart(2, '0')
|
||||||
|
+ "" + testReverse.toString(16).toUpperCase().padStart(2, '0') + "FFFF");
|
||||||
|
}
|
||||||
|
|
||||||
export function UpdateCoord(ev, map) {
|
export function UpdateCoord(ev, map) {
|
||||||
coordOverlay.update(math.GetLandBlockId(ev, map), math.coordToCardinal(ev.latlng.lat, ev.latlng.lng));
|
coordOverlay.update(math.GetLandBlockId(ev, map), math.coordToCardinal(ev.latlng.lat, ev.latlng.lng));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue