joa stuff ne
This commit is contained in:
parent
cf4294fddf
commit
4130b90e4e
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 67 KiB |
|
@ -1,14 +1,38 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import requests, json, pickle, os.path, svgwrite
|
import requests, json, pickle, os.path, svgwrite, math
|
||||||
|
|
||||||
URL = "https://directory.spaceapi.io/"
|
URL = "https://directory.spaceapi.io/"
|
||||||
NORTHERNMOST = 55.05
|
NORTHERNMOST = 55.05
|
||||||
EASTERNMOST = 15.033333
|
EASTERNMOST = 15.033333
|
||||||
SOUTHERNMOST = 47.270108
|
SOUTHERNMOST = 47.270108
|
||||||
WESTERNMOST = 5.866667
|
WESTERNMOST = 5.866667
|
||||||
|
threshold = 0.10
|
||||||
YSPAN = NORTHERNMOST - SOUTHERNMOST
|
YSPAN = NORTHERNMOST - SOUTHERNMOST
|
||||||
XSPAN = EASTERNMOST - WESTERNMOST
|
XSPAN = EASTERNMOST - WESTERNMOST
|
||||||
locations = {}
|
locations = {}
|
||||||
|
blacklist = ["Chaostreff Salzburg", "DevLoL", "CCC Basel", "Chaostreff Zürich", "ChaosStuff"]
|
||||||
|
|
||||||
|
def dist(n1, n2):
|
||||||
|
y = n1[0] - n2[0]
|
||||||
|
x = n1[1] - n2[1]
|
||||||
|
return math.sqrt(math.pow(x, 2) + math.pow(y, 2))
|
||||||
|
|
||||||
|
def conflict(targetlist, node):
|
||||||
|
returner = None
|
||||||
|
for element in targetlist:
|
||||||
|
if dist(node, targetlist[element]) < threshold:
|
||||||
|
returner = element
|
||||||
|
continue
|
||||||
|
return returner
|
||||||
|
|
||||||
|
def merge(n1, n2):
|
||||||
|
lat = (n1[0] + n2[0]) / 2
|
||||||
|
lon = (n1[1] + n2[1]) / 2
|
||||||
|
returner = []
|
||||||
|
returner.append(lat)
|
||||||
|
returner.append(lon)
|
||||||
|
return returner
|
||||||
|
|
||||||
if os.path.isfile('locations.bin'):
|
if os.path.isfile('locations.bin'):
|
||||||
print ("using offline data...")
|
print ("using offline data...")
|
||||||
with open("locations.bin", "rb") as f:
|
with open("locations.bin", "rb") as f:
|
||||||
|
@ -42,22 +66,37 @@ german_locations = locations.copy()
|
||||||
for space in locations:
|
for space in locations:
|
||||||
if locations[space][0] > NORTHERNMOST:
|
if locations[space][0] > NORTHERNMOST:
|
||||||
del german_locations[space]
|
del german_locations[space]
|
||||||
print ("kicked " + space + " too far north")
|
|
||||||
elif locations[space][0] < SOUTHERNMOST:
|
elif locations[space][0] < SOUTHERNMOST:
|
||||||
del german_locations[space]
|
del german_locations[space]
|
||||||
print ("kicked " + space + " too far south")
|
|
||||||
elif locations[space][1] < WESTERNMOST:
|
elif locations[space][1] < WESTERNMOST:
|
||||||
del german_locations[space]
|
del german_locations[space]
|
||||||
print ("kicked " + space + " too far west")
|
|
||||||
elif locations[space][1] > EASTERNMOST:
|
elif locations[space][1] > EASTERNMOST:
|
||||||
del german_locations[space]
|
del german_locations[space]
|
||||||
print ("kicked " + space + " too far east")
|
|
||||||
|
|
||||||
|
for space in blacklist:
|
||||||
|
del german_locations[space]
|
||||||
|
|
||||||
|
|
||||||
|
finallist = {}
|
||||||
|
while german_locations:
|
||||||
|
n1 = next(iter(german_locations))
|
||||||
|
conflictnode = conflict(finallist, german_locations[n1])
|
||||||
|
if conflictnode == None:
|
||||||
|
finallist.update({n1 : german_locations[n1]})
|
||||||
|
del german_locations[n1]
|
||||||
|
else:
|
||||||
|
mergenode = merge(german_locations[n1], finallist[conflictnode])
|
||||||
|
del german_locations[n1]
|
||||||
|
del finallist[conflictnode]
|
||||||
|
german_locations.update({"MERGED: " + n1 + " " + conflictnode : mergenode})
|
||||||
|
|
||||||
|
for space in finallist:
|
||||||
|
print(space + " " + str(finallist[space][0]) + " " + str(finallist[space][1]))
|
||||||
dwg = svgwrite.Drawing('svgwrite-example.svg', profile='tiny')
|
dwg = svgwrite.Drawing('svgwrite-example.svg', profile='tiny')
|
||||||
dwg.add(svgwrite.image.Image(href="Karte_Deutschland.svg", size=(572,770)))
|
#dwg.add(svgwrite.image.Image(href="Karte_Deutschland.svg", size=(586, 793)))
|
||||||
dwg.add(dwg.circle(center=(0,0), r=3, fill='black'))
|
dwg.add(dwg.circle(center=(0,0), r=3, fill='black'))
|
||||||
for space in german_locations:
|
for space in finallist:
|
||||||
ypoint = (770 - (((german_locations[space][0] - SOUTHERNMOST) / YSPAN)* 770))
|
ypoint = (793 - (((finallist[space][0] - SOUTHERNMOST) / YSPAN)* 793))
|
||||||
dwg.add(dwg.circle(center=(((locations[space][1] - WESTERNMOST) / XSPAN) *
|
dwg.add(dwg.circle(center=(((finallist[space][1] - WESTERNMOST) / XSPAN) *
|
||||||
572, ypoint), r=1, fill='black'))
|
586, ypoint), r=5, fill='green'))
|
||||||
dwg.save()
|
dwg.save()
|
||||||
|
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue