ais/ais/folkstone/parse.py
2010-05-10 17:58:23 +05:30

47 lines
1.7 KiB
Python

import oxweb
import oxlib
import urllib2
import json
from django.contrib.gis.geos import Point
BASE_URL = "http://localhost:8000/shipjson"
def json_request(url):
try:
# request = urllib2.Request(url)
# request.add_header('User-agent', 'oxclient')
# body = str(form)
# request.add_header('Content-type', form.get_content_type())
# request.add_header('Content-length', len(body))
# request.add_data(body)
result = urllib2.urlopen(url).read().strip()
return json.loads(result)
except urllib2.HTTPError, e:
return False
if __name__ == "__main__":
import sys
if (len(sys.argv)) < 5:
print "usage: %s sw_x sw_y ne_x ne_y\n" % (sys.argv[0],)
print "example: %s 23.0 36.6 26.8 38.00000000006" % (sys.argv[0])
sys.exit()
else:
from folkstone.models import *
args = sys.argv
url = "%s?sw_x=%s&sw_y=%s&ne_x=%s&ne_y=%s" % (BASE_URL, args[1], args[2], args[3], args[4],)
print url
geojson = json_request(url)
for f in geojson['features']:
mmsi = f['properties']['mmsi']
name = f['properties']['name']
point = Point(float(f['geometry']['coordinates'][0]), float(f['geometry']['coordinates'][1]))
if Ship.objects.filter(mmsi=mmsi).count() > 1:
ship = Ship.objects.get(mmsi=mmsi)
else:
ship = Ship(mmsi=mmsi, name=name)
p = Position(ship=ship, point=point)
print p.timestamp
# features = json.loads(geojson)
# print features
# url = "http://marinetraffic.com/ais/getxml.aspx?id=0.8963493388008952&sw_x=%s&sw_y=%s&ne_x=%s&ne_y=%s&zoom=10&fleet=" % (args[1], args[2], args[3], args[4])