示例#1
0
def get_notampoints_on_line(latlon1,latlon2,dist_nm):
    zoomlevel=13
    distmax=mapper.approx_scale(mapper.latlon2merc(latlon1,zoomlevel),zoomlevel,dist_nm)
    px1,py1=mapper.latlon2merc(latlon1,zoomlevel)
    px2,py2=mapper.latlon2merc(latlon2,zoomlevel)
    a=Vertex(int(px1),int(py1))
    b=Vertex(int(px2),int(py2))
    line=Line(a,b)    
    crosses=[]
    for kind,items in get_notam_objs_cached().items():
        if kind!="areas":
            for item in items:
                x,y=mapper.latlon2merc(mapper.from_str(item['pos']),zoomlevel)
                d=line.approx_dist(Vertex(int(x),int(y)))
                clo=line.approx_closest(Vertex(int(x),int(y)))
                alongd=(clo-a).approxlength()
                totd=(a-b).approxlength()
                #print "AlongD: %s, totd: %s"%(alongd,totd)
                #print "Line: %s, notam coord: %s, closest: %s"%((a,b),(x,y),clo)
                #print "Item %s, d: %s, distmax: %s"%(item,d,distmax)
                if totd<1e-6:
                    perc=0
                else:                    
                    perc=alongd/totd
                if d<distmax:
                    #print "Yielding item."
                    yield dict(item=item,alongperc=perc)
示例#2
0
def get_any_space_on_line(latlon1,latlon2):
    return list(
        chain(
              get_airspaces_on_line(latlon1,latlon2),
              #get_polygons_on_line(latlon1,latlon2,cache.get_airspaces()),
              get_polygons_on_line(latlon1,latlon2,cache.get_aip_sup_areas()),
              get_polygons_on_line(latlon1,latlon2,get_notam_objs_cached()['areas'])
              ))
示例#3
0
def get_notampoints(lat,lon,zoomlevel):
    clickx,clicky=mapper.latlon2merc((lat,lon),zoomlevel)
    for kind,items in get_notam_objs_cached().items():
        if kind!="areas":
            for item in items:            
                x,y=mapper.latlon2merc(mapper.from_str(item['pos']),zoomlevel)
                radius=10
                d=(clickx-x)**2+(clicky-y)**2
                if d<=(radius)**2:
                   yield item
示例#4
0
def get_notam_areas_on_line(latlon1,latlon2):
    return get_polygons_on_line(latlon1,latlon2,get_notam_objs_cached()['areas'])
示例#5
0
def get_notam_areas(lat,lon):
    return get_polygons_around(lat,lon,get_notam_objs_cached()['areas'])