mirror of
https://github.com/placeAtlas/atlas.git
synced 2024-12-24 18:44:19 +01:00
Merge remote-tracking branch 'up/cleanup' into cleanup
This commit is contained in:
commit
6bd8972af1
5 changed files with 783 additions and 582 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -13,3 +13,4 @@ combined.js
|
|||
*.DS_Store
|
||||
.vscode/
|
||||
web/atlas-before-ids-migration.json
|
||||
*.pyc
|
||||
|
|
|
@ -188,7 +188,49 @@ def convert_subreddit_to_website(entry: dict):
|
|||
entry["subreddit"] = ""
|
||||
|
||||
return entry
|
||||
|
||||
|
||||
def calculate_center(path: list):
|
||||
"""
|
||||
Caluclates the center of a polygon
|
||||
|
||||
adapted from /web/_js/draw.js:calucalteCenter()
|
||||
"""
|
||||
area = 0
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
for i in range(len(path)):
|
||||
point1 = path[i]
|
||||
point2 = path[i-1 if i != 0 else len(path)-1]
|
||||
f = point1[0] * point2[1] - point2[0] * point1[1]
|
||||
area += f
|
||||
x += (point1[0] + point2[0]) * f
|
||||
y += (point1[1] + point2[1]) * f
|
||||
|
||||
area *= 3
|
||||
|
||||
if area != 0:
|
||||
return [x // area + 0.5, y // area + 0.5]
|
||||
else:
|
||||
# get the center of a straight line
|
||||
max_x = max(i[0] for i in path)
|
||||
min_x = min(i[0] for i in path)
|
||||
max_y = max(i[1] for i in path)
|
||||
min_y = min(i[1] for i in path)
|
||||
return [(max_x + min_x) // 2 + 0.5, (max_y + min_y) // 2 + 0.5]
|
||||
|
||||
def update_center(entry: dict):
|
||||
"""
|
||||
checks if the center of a entry is up to date, and updates it if it's either missing or outdated
|
||||
"""
|
||||
if 'path' not in entry:
|
||||
return entry
|
||||
path = entry['path']
|
||||
if len(path) > 1:
|
||||
calculated_center = calculate_center(path)
|
||||
if 'center' not in entry or entry['center'] != calculated_center:
|
||||
entry['center'] = calculated_center
|
||||
return entry
|
||||
|
||||
def validate(entry: dict):
|
||||
"""
|
||||
|
@ -256,6 +298,8 @@ def print_(*args, **kwargs):
|
|||
entry = fix_no_protocol_urls(entry)
|
||||
print_("Removing extras...")
|
||||
entry = remove_extras(entry)
|
||||
print_("Updating center")
|
||||
entry = update_center(entry)
|
||||
print_("Validating...")
|
||||
status_code = validate(entry)
|
||||
print_("Completed!")
|
||||
|
@ -287,4 +331,4 @@ def go(path):
|
|||
|
||||
print("Writing completed. All done.")
|
||||
|
||||
go("../web/atlas.json")
|
||||
go("../web/atlas.json")
|
||||
|
|
|
@ -231,33 +231,25 @@ function initDraw(){
|
|||
function calculateCenter(path){
|
||||
|
||||
var area = 0,
|
||||
i,
|
||||
j,
|
||||
point1,
|
||||
point2;
|
||||
i,
|
||||
j,
|
||||
point1,
|
||||
point2,
|
||||
x = 0,
|
||||
y = 0,
|
||||
f;
|
||||
|
||||
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
|
||||
point1 = path[i];
|
||||
point2 = path[j];
|
||||
area += point1[0] * point2[1];
|
||||
area -= point1[1] * point2[0];
|
||||
}
|
||||
area *= 3;
|
||||
|
||||
var x = 0,
|
||||
y = 0,
|
||||
f;
|
||||
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
|
||||
point1 = path[i];
|
||||
point2 = path[j];
|
||||
f = point1[0] * point2[1] - point2[0] * point1[1];
|
||||
area += f;
|
||||
x += (point1[0] + point2[0]) * f;
|
||||
y += (point1[1] + point2[1]) * f;
|
||||
}
|
||||
area *= 3;
|
||||
|
||||
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
|
||||
point1 = path[i];
|
||||
point2 = path[j];
|
||||
f = point1[0] * point2[1] - point2[0] * point1[1];
|
||||
x += (point1[0] + point2[0]) * f;
|
||||
y += (point1[1] + point2[1]) * f;
|
||||
}
|
||||
|
||||
return [~~(x / area)+0.5, ~~(y / area)+0.5];
|
||||
|
||||
return [Math.floor(x / area)+0.5, Math.floor(y / area)+0.5];
|
||||
}
|
||||
|
||||
function undo(){
|
||||
|
|
|
@ -285,6 +285,7 @@ function buildObjectsList(filter, sort){
|
|||
value.name.toLowerCase().indexOf(filter) !== -1
|
||||
|| value.description.toLowerCase().indexOf(filter) !== -1
|
||||
|| value.subreddit && value.subreddit.toLowerCase().indexOf(filter) !== -1
|
||||
|| value.id === filter
|
||||
);
|
||||
});
|
||||
document.getElementById("atlasSize").innerHTML = "Found "+sortedAtlas.length+" entries.";
|
||||
|
@ -838,4 +839,4 @@ function initViewGlobal() {
|
|||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
1271
web/atlas.json
1271
web/atlas.json
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue