Рефактор
This commit is contained in:
@@ -532,34 +532,28 @@ func get_tile(x: int, y: int, z: int, create: bool = true) -> Tile:
|
||||
x = -x - 1
|
||||
x = int(n - 1) - (x % int(n))
|
||||
|
||||
# out of bounds
|
||||
if z < 0 or y < 0 or y >= n:
|
||||
return null
|
||||
|
||||
# get tile index
|
||||
var idx = xyz_to_idx(x, y, z)
|
||||
var tile = null
|
||||
|
||||
# retrieve from current requests...
|
||||
var req = get_node_or_null(NodePath(str(idx)))
|
||||
if req:
|
||||
tile = req.get_meta('tile')
|
||||
tile.t = now
|
||||
return tile
|
||||
|
||||
# retrieve from cache
|
||||
tile = _cache.get(idx)
|
||||
if tile:
|
||||
tile.t = now
|
||||
return tile
|
||||
|
||||
# retrieve from queue
|
||||
tile = _queue.get(idx)
|
||||
if tile:
|
||||
tile.t = now
|
||||
return tile
|
||||
|
||||
# create a new tile - add it to queue
|
||||
var queue_size: = _queue.size()
|
||||
if create and (not $canvas/player.is_playing()):
|
||||
tile = Tile.new(idx, x, y, z)
|
||||
@@ -609,12 +603,13 @@ class Tile:
|
||||
|
||||
func haversine_m(lat1, lon1, lat2, lon2):
|
||||
# Радиус Земли в метрах
|
||||
var R: = 6372795.0
|
||||
const R: = 6372795.0
|
||||
# Преобразование градусов в радианы
|
||||
var rlat1: = deg_to_rad(lat1)
|
||||
var rlon1: = deg_to_rad(lon1)
|
||||
var rlat2: = deg_to_rad(lat2)
|
||||
var rlon2: = deg_to_rad(lon2)
|
||||
# вычисления длины большого круга
|
||||
var cl1: = cos(rlat1)
|
||||
var cl2: = cos(rlat2)
|
||||
var sl1: = sin(rlat1)
|
||||
@@ -622,8 +617,7 @@ func haversine_m(lat1, lon1, lat2, lon2):
|
||||
var delta: = rlon2 - rlon1
|
||||
var cdelta: = cos(delta)
|
||||
var sdelta: = sin(delta)
|
||||
# вычисления длины большого круга
|
||||
var y: = sqrt(pow(cl2 * sdelta, 2) + pow(cl1 * sl2 - sl1 * cl2 * cdelta, 2))
|
||||
var y: = sqrt(pow(cl2 * sdelta, 2.0) + pow(cl1 * sl2 - sl1 * cl2 * cdelta, 2.0))
|
||||
var x: = sl1 * sl2 + cl1 * cl2 * cdelta
|
||||
var ad: = atan2(y, x)
|
||||
var dist: = ad * R
|
||||
|
||||
Reference in New Issue
Block a user