47 lines
1.7 KiB
Python
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])
|