nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit d3441989aaa8c97bb3e5d06f2b740d95fb3f16ab
parent 0d3392286c812ef83e9d348b20879b41021ad099
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Sat,  3 Nov 2018 14:27:54 +0100

show soviet topo grid at both sides of 180 meridian  #160

Diffstat:
Msrc/lib/leaflet.layer.soviet-topomaps-grid/index.js | 9++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/lib/leaflet.layer.soviet-topomaps-grid/index.js b/src/lib/leaflet.layer.soviet-topomaps-grid/index.js @@ -108,6 +108,7 @@ var Nomenclature = { var min_lat = Math.max(bounds.getSouth(), -84); var max_lat = Math.min(bounds.getNorth(), 84); var min_row = Math.floor(min_lat / row_height); + const maxCols = 360 / column_width; for (var row = min_row; row * row_height < max_lat; row++) { var row_south = row * row_height; var row_north = row_south + row_height; @@ -119,15 +120,17 @@ var Nomenclature = { } else { joined_quads = 1; } - var min_lon = Math.max(bounds.getWest(), -180); - var max_lon = Math.min(bounds.getEast(), 180); + var min_lon = bounds.getWest(); + var max_lon = bounds.getEast(); var min_column = Math.floor((min_lon + 180) / column_width / joined_quads) * joined_quads - Math.round(180 / column_width); for (var column = min_column; column * column_width < max_lon; column += joined_quads) { var column_west = column * column_width; var column_east = column_west + column_width * joined_quads; var quad_bounds = L.latLngBounds([[row_south, column_west], [row_north, column_east]]); - var names = name_factory(column, row, joined_quads); + // shift column to positive numbers, calc modulo, shift back + const wrappedColumn = ((column + maxCols / 2) % maxCols + maxCols) % maxCols - maxCols / 2; + var names = name_factory(wrappedColumn, row, joined_quads); quads.push({'names': names, 'bounds': quad_bounds}); } }