remove geomap builder
This commit is contained in:
parent
913608ae4f
commit
f380b808e1
|
@ -1,43 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# TODO
|
||||
# Gatewayliste
|
||||
# aliases.json
|
||||
|
||||
import json
|
||||
import fileinput
|
||||
import argparse
|
||||
|
||||
from nodedb import NodeDB
|
||||
from geomapbuilder import GeoMapBuilder
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
parser.add_argument('-a', '--aliases',
|
||||
help='read aliases from FILE',
|
||||
metavar='FILE')
|
||||
|
||||
parser.add_argument('-g', '--gateway', action='append',
|
||||
help='MAC of a gateway')
|
||||
|
||||
parser.add_argument('batmanjson', help='output of batman vd json')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
options = vars(args)
|
||||
|
||||
db = NodeDB()
|
||||
|
||||
db.import_batman(list(fileinput.input(options['batmanjson'])))
|
||||
|
||||
if options['aliases']:
|
||||
db.import_aliases(json.load(open(options['aliases'])))
|
||||
|
||||
if options['gateway']:
|
||||
db.mark_gateways(options['gateway'])
|
||||
|
||||
db.import_wikigps("http://freifunk.metameute.de/Knoten")
|
||||
|
||||
m = GeoMapBuilder(db)
|
||||
|
||||
print(m.build())
|
116
geomapbuilder.py
116
geomapbuilder.py
|
@ -1,116 +0,0 @@
|
|||
class GeoMapBuilder:
|
||||
kml_template = """<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kml xmlns="http://www.opengis.net/kml/2.2">
|
||||
<Document>
|
||||
<Style id="virtual-link">
|
||||
<LineStyle>
|
||||
<color>#4f0013f8</color>
|
||||
<width>2</width>
|
||||
</LineStyle>
|
||||
</Style>
|
||||
<Style id="wifi-link">
|
||||
<LineStyle>
|
||||
<color>#ff13d854</color>
|
||||
<width>4</width>
|
||||
</LineStyle>
|
||||
</Style>
|
||||
<Style id="router-unknown">
|
||||
<IconStyle>
|
||||
<Icon>
|
||||
<href>router-unknown.png</href>
|
||||
<scale>1.0</scale>
|
||||
</Icon>
|
||||
</IconStyle>
|
||||
</Style>
|
||||
<Style id="router-up">
|
||||
<IconStyle>
|
||||
<Icon>
|
||||
<href>router-up.png</href>
|
||||
<scale>1.0</scale>
|
||||
</Icon>
|
||||
</IconStyle>
|
||||
</Style>
|
||||
<Style id="router-down">
|
||||
<IconStyle>
|
||||
<Icon>
|
||||
<href>router-down.png</href>
|
||||
<scale>1.0</scale>
|
||||
</Icon>
|
||||
</IconStyle>
|
||||
</Style>
|
||||
%s
|
||||
</Document>
|
||||
</kml>"""
|
||||
|
||||
def __init__(self, db):
|
||||
self._db = db
|
||||
|
||||
def build(self):
|
||||
text = []
|
||||
|
||||
nodes = self._db.get_nodes()
|
||||
|
||||
for node in nodes:
|
||||
try:
|
||||
text.append(GeoNode(node).render())
|
||||
except:
|
||||
continue
|
||||
|
||||
for link in self._db.get_links():
|
||||
if link.type == "vpn":
|
||||
continue
|
||||
|
||||
try:
|
||||
text.append(GeoEdge(nodes, link).render())
|
||||
except:
|
||||
continue
|
||||
|
||||
return self.kml_template % "".join(text)
|
||||
|
||||
def gps_format(s):
|
||||
return ",".join(s.split(" ")[::-1])
|
||||
|
||||
class GeoNode:
|
||||
kml_template = """<Placemark>
|
||||
<name>%s</name>
|
||||
<styleUrl>#router-%s</styleUrl>
|
||||
<Point>
|
||||
<coordinates>%s,0</coordinates>
|
||||
</Point>
|
||||
<description>%s</description>
|
||||
</Placemark>"""
|
||||
|
||||
def __init__(self, node):
|
||||
self._node = node
|
||||
|
||||
def render(self):
|
||||
if not self._node.gps:
|
||||
raise
|
||||
|
||||
name = self._node.name
|
||||
status = "up" if self._node.flags['online'] else "down"
|
||||
gps = gps_format(self._node.gps)
|
||||
text = " ".join(self._node.macs)
|
||||
|
||||
return self.kml_template % (name, status, gps, text)
|
||||
|
||||
class GeoEdge:
|
||||
kml_template = """<Placemark>
|
||||
<LineString>
|
||||
<coordinates>%s,0. %s,0.</coordinates>
|
||||
</LineString>
|
||||
<styleUrl>#%s</styleUrl>
|
||||
</Placemark>"""
|
||||
|
||||
def __init__(self, nodes, link):
|
||||
self._link = link
|
||||
self.pair = [nodes[k.id] for k in (link.source, link.target)]
|
||||
|
||||
def render(self):
|
||||
if not (self.pair[0].gps and self.pair[1].gps):
|
||||
raise
|
||||
|
||||
a = gps_format(self.pair[0].gps)
|
||||
b = gps_format(self.pair[1].gps)
|
||||
|
||||
return self.kml_template % (a, b, "wifi-link")
|
2
mkmap.sh
2
mkmap.sh
|
@ -18,8 +18,6 @@ if [ `cat /sys/class/net/bat0/mesh/gw_mode` = server ]; then
|
|||
fi
|
||||
|
||||
batctl vd json | "$(dirname "$0")"/bat2nodes.py -a "$(dirname "$0")"/aliases.json $GWS - > $DEST/nodes.json.new
|
||||
batctl vd json | "$(dirname "$0")"/bat2geomap.py -a "$(dirname "$0")"/aliases.json $GWS - > $DEST/geomap.kml.new
|
||||
|
||||
mv $DEST/nodes.json.new $DEST/nodes.json
|
||||
mv $DEST/geomap.kml.new $DEST/geomap.kml
|
||||
|
||||
|
|
Loading…
Reference in a new issue