Add coord to map, fix pixel shift in zoom

This commit is contained in:
Pascal Engélibert 2022-02-19 11:40:37 +01:00
parent ca4da88ddb
commit c134280b63
Signed by: tuxmain
GPG Key ID: 3504BC6D362F7DCA
2 changed files with 28 additions and 15 deletions

View File

@ -23,7 +23,7 @@ html, body, #map {
<script type="text/javascript"> <script type="text/javascript">
var MAP_POS = [-909, 1908]; var MAP_POS = [-909, 1908];
var MAP_ZOOM = 7; var MAP_ZOOM = 7;
var MAP_TILES = "https://jirafeau.mamonnaielibre.fr/minetest-map/survival/{z}/{x}/{y}.png" var MAP_TILES = "http://g1formation.fr/minetest-map/survival/{z}/{x}/{y}.png"
var MAP_POINTS = [ var MAP_POINTS = [
[-909, 12, 1908, "Spawn"], [-909, 12, 1908, "Spawn"],
[172, 19, 1288, "Maison/Supermarché de tuxmain"], [172, 19, 1288, "Maison/Supermarché de tuxmain"],
@ -47,6 +47,16 @@ var map = L.map("map", {
"crs": L.CRS.Simple, "crs": L.CRS.Simple,
"maxZoom": 10 "maxZoom": 10
}).setView([MAP_POS[1]/128, MAP_POS[0]/128], MAP_ZOOM); }).setView([MAP_POS[1]/128, MAP_POS[0]/128], MAP_ZOOM);
var coord_popup = L.popup();
function onMapClick(e) {
coord_popup
.setLatLng(e.latlng)
.setContent(e.latlng.lng*128 + " " + e.latlng.lat*128)
.openOn(map);
}
map.on('click', onMapClick);
L.control.layers({ L.control.layers({
"Juneland Survival": L.tileLayer(MAP_TILES, {attribution: "CC BY-SA Juneland Players"}).addTo(map) "Juneland Survival": L.tileLayer(MAP_TILES, {attribution: "CC BY-SA Juneland Players"}).addTo(map)
}, { }, {

View File

@ -18,7 +18,7 @@ MINETESTMAPPER_PATH = "/home/tuxmain/minetestmapper/minetestmapper"
WORLD_PATH = "/var/games/minetest-server/.minetest/worlds/juneland-survival/" WORLD_PATH = "/var/games/minetest-server/.minetest/worlds/juneland-survival/"
# Path to the folder which will contain the tiles # Path to the folder which will contain the tiles
OUTPUT_PATH = "/var/www/html/jirafeau/minetest-map/survival/" OUTPUT_PATH = "/var/www/html/minetest-map/survival/"
# Zoom level corresponding to 1:1 ratio (1 node = 1 pixel). # Zoom level corresponding to 1:1 ratio (1 node = 1 pixel).
# You usually don't need to change this. # You usually don't need to change this.
@ -47,21 +47,24 @@ MINETESTMAPPER_OPTIONS = [
#### END SETTINGS #### END SETTINGS
def run_minetestmapper(x, y, z):
cmd = [
MINETESTMAPPER_PATH,
"-i", WORLD_PATH,
"-o", OUTPUT_PATH+"{}/{}/{}.png".format(y, x, z),
"--geometry", "{}:{}+{}+{}".format(x*TILE_SIZE, (-1-z)*TILE_SIZE, TILE_SIZE, TILE_SIZE),
*MINETESTMAPPER_OPTIONS
]
#print(cmd)
subprocess.run(cmd)
if __name__ == "__main__": if __name__ == "__main__":
y = ZOOM_LEVEL y = ZOOM_LEVEL
for x in range(-RAY, RAY): for x in range(-RAY, RAY):
os.makedirs(OUTPUT_PATH+"{}/{}".format(y, x), exist_ok=True) os.makedirs(OUTPUT_PATH+"{}/{}".format(y, x), exist_ok=True)
for z in range(-RAY, RAY): for z in range(-RAY, RAY):
#print(y, x, z, end="\r") #print(y, x, z, end="\r")
cmd = [ run_minetestmapper(x, y, z)
MINETESTMAPPER_PATH,
"-i", WORLD_PATH,
"-o", OUTPUT_PATH+"{}/{}/{}.png".format(y, x, z),
"--geometry", "{}:{}+{}+{}".format(x*TILE_SIZE, (-1-z)*TILE_SIZE, TILE_SIZE, TILE_SIZE),
*MINETESTMAPPER_OPTIONS
]
#print(cmd)
subprocess.run(cmd)
f = 2 f = 2
for y in range(ZOOM_LEVEL-1, MIN_ZOOM_LEVEL-1, -1): for y in range(ZOOM_LEVEL-1, MIN_ZOOM_LEVEL-1, -1):
@ -105,8 +108,8 @@ if __name__ == "__main__":
except FileNotFoundError: except FileNotFoundError:
continue continue
img = img.resize((TILE_SIZE*2, TILE_SIZE*2)) img = img.resize((TILE_SIZE*2, TILE_SIZE*2))
img.crop((0, 0, TILE_SIZE-1, TILE_SIZE-1)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2, z*2)) img.crop((0, 0, TILE_SIZE, TILE_SIZE)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2, z*2))
img.crop((TILE_SIZE, 0, TILE_SIZE*2-1, TILE_SIZE-1)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2+1, z*2)) img.crop((TILE_SIZE, 0, TILE_SIZE*2, TILE_SIZE)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2+1, z*2))
img.crop((0, TILE_SIZE, TILE_SIZE-1, TILE_SIZE*2-1)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2, z*2+1)) img.crop((0, TILE_SIZE, TILE_SIZE, TILE_SIZE*2)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2, z*2+1))
img.crop((TILE_SIZE, TILE_SIZE, TILE_SIZE*2-1, TILE_SIZE*2-1)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2+1, z*2+1)) img.crop((TILE_SIZE, TILE_SIZE, TILE_SIZE*2, TILE_SIZE*2)).save("{}{}/{}/{}.png".format(OUTPUT_PATH, y, x*2+1, z*2+1))
f *= 2 f *= 2