joa stuff ne

This commit is contained in:
Malte Münch 2020-01-26 23:30:03 +01:00
parent cf4294fddf
commit 4130b90e4e
3 changed files with 127 additions and 11 deletions

77
germany.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -1,14 +1,38 @@
#!/usr/bin/python
import requests, json, pickle, os.path, svgwrite
import requests, json, pickle, os.path, svgwrite, math
URL = "https://directory.spaceapi.io/"
NORTHERNMOST = 55.05
EASTERNMOST = 15.033333
SOUTHERNMOST = 47.270108
WESTERNMOST = 5.866667
threshold = 0.10
YSPAN = NORTHERNMOST - SOUTHERNMOST
XSPAN = EASTERNMOST - WESTERNMOST
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'):
print ("using offline data...")
with open("locations.bin", "rb") as f:
@ -42,22 +66,37 @@ german_locations = locations.copy()
for space in locations:
if locations[space][0] > NORTHERNMOST:
del german_locations[space]
print ("kicked " + space + " too far north")
elif locations[space][0] < SOUTHERNMOST:
del german_locations[space]
print ("kicked " + space + " too far south")
elif locations[space][1] < WESTERNMOST:
del german_locations[space]
print ("kicked " + space + " too far west")
elif locations[space][1] > EASTERNMOST:
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.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'))
for space in german_locations:
ypoint = (770 - (((german_locations[space][0] - SOUTHERNMOST) / YSPAN)* 770))
dwg.add(dwg.circle(center=(((locations[space][1] - WESTERNMOST) / XSPAN) *
572, ypoint), r=1, fill='black'))
for space in finallist:
ypoint = (793 - (((finallist[space][0] - SOUTHERNMOST) / YSPAN)* 793))
dwg.add(dwg.circle(center=(((finallist[space][1] - WESTERNMOST) / XSPAN) *
586, ypoint), r=5, fill='green'))
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