Ejemplo n.º 1
0
def write_plotting_data_to_file(dropbox_filename = '/othodi/cities_few.txt',out_fname = 'data4plotting.txt'):
    m1=mapm.Map()
    m1.add_locations_from_file(fname=dropbox_filename,dropbox=True)
    print(len(m1.locations))

    origin = locm.Location("Moscow",name='Moscow')
    raw_routes = []
    for location in [locn for locn in m1.locations if locn.name != origin.name]:
        if 'lat' in location.coords and 'lng' in location.coords:
            try:
                raw_routes.append(gmaps.get_route(origin.coords, location.coords))
            except Exception as e:
                print('Warning: Error in get_route for location %s: no data from gmaps?\n%s' % (location.address,e))


    from operator import itemgetter
    raw_routes.sort(key=itemgetter(-1)) # sort by duration
    # for i,point in enumerate(m1.locations):
    #     print("%i: %s" % (i,str(point.coords)))
    add_points_coords_list = [(point.coords['lat'],point.coords['lng']) for point in m1.locations]
    add_points_annotes_list = [point.name for point in m1.locations]
    with open(out_fname,'w') as f:
        f.write(str(raw_routes[0][0]))
        f.write('\n')
        f.write(str(raw_routes[0][1]))
        f.write('\n')
        f.write(str(add_points_coords_list))
        f.write('\n')
        f.write(str(add_points_annotes_list))
    return raw_routes[0][0],raw_routes[0][1],add_points_coords_list,add_points_annotes_list
Ejemplo n.º 2
0
 def __init__(self, *args, **kwargs):
     if len(args)==2 and all(isinstance(point, dict) for point in args):
         self._start = args[0]
         self._finish = args[1]
         gdata = gmaps.get_route(self._start, self._finish)
         main_dict = gdata["routes"][0]['legs'][-1]
         self._duration = main_dict[u'duration']
         self._distance = main_dict[u'distance']
         self._waypoints, self._wp_durations = [self._start], [0] 
         for step in main_dict[u'steps']:
             self._waypoints.append(step[u'end_location'])
             self._wp_durations.append(step[u'duration']['value'])
     else:
         raise ValueError('Wrong arguments passed to constructor.')
Ejemplo n.º 3
0
 def __init__(self, *args, **kwargs):
     if len(args) == 2 and all(isinstance(point, dict) for point in args):
         self._start = args[0]
         self._finish = args[1]
         gdata = gmaps.get_route(self._start, self._finish)
         main_dict = gdata["routes"][0]['legs'][-1]
         self._duration = main_dict[u'duration']
         self._distance = main_dict[u'distance']
         self._waypoints, self._wp_durations = [self._start], [0]
         for step in main_dict[u'steps']:
             self._waypoints.append(step[u'end_location'])
             self._wp_durations.append(step[u'duration']['value'])
     else:
         raise ValueError('Wrong arguments passed to constructor.')
Ejemplo n.º 4
0
    # s2 = Location("Moscow")
    print(s1.coords)
    # s1.coords = {'we': 21, 'wee': 23}
    # print(s1.coords)
    import tools
    print(tools.distance_straight(s1.coords,s2.coords))
    import mapm
    mo = mapm.Map(locations = [s1,s2])

    import gmaps
    cities_names = ['Moscow','Sarov','Krasnogorsk','Zelenograd','Dubna']
    sample_filename = tools.write_sample_cities_data_to_file(cities_names)
    locs_list = create_locations_list(sample_filename)
    str_lst = [loc.to_str() for loc in locs_list]
    for el in str_lst:
        print(el)

    origin = Location("Moscow",name='Moscow')
    raw_routes = []
    for location in [locn for locn in locs_list if locn.name != origin.name]:
        raw_routes.append(gmaps.get_route(origin.coords, location.coords))

        #!!! rewrite:
    from operator import itemgetter
    raw_routes.sort(key=itemgetter(-1)) # sort by duration
    from pprint import pprint as pp
    pp(raw_routes)
    import plot_routes  
    add_points_coords_list = [(point.coords['lat'],point.coords['lng']) for point in locs_list]
    add_points_annotes_list = [point.name for point in locs_list]
    plot_routes.plot_route_on_basemap(raw_routes[0][0], raw_routes[0][1], [add_points_coords_list,add_points_annotes_list]) # plots nearest route
Ejemplo n.º 5
0
    # s2 = Location("Moscow")
    print(s1.coords)
    # s1.coords = {'we': 21, 'wee': 23}
    # print(s1.coords)
    import tools
    print(tools.distance_straight(s1.coords,s2.coords))
    import mapm
    mo = mapm.Map(locations = [s1,s2])

    import gmaps
    cities_names = ['Moscow','Sarov','Krasnogorsk','Zelenograd','Dubna']
    sample_filename = tools.write_sample_cities_data_to_file(cities_names)
    locs_list = create_locations_list(sample_filename)
    str_lst = [loc.to_str() for loc in locs_list]
    for el in str_lst:
        print(el)

    origin = Location("Moscow",name='Moscow')
    raw_routes = []
    for location in [locn for locn in locs_list if locn.name != origin.name]:
        raw_routes.append(gmaps.get_route(origin.coords, location.coords))

        #!!! rewrite:
    from operator import itemgetter
    raw_routes.sort(key=itemgetter(-1)) # sort by duration
    from pprint import pprint as pp
    pp(raw_routes)
    import plot_routes  
    add_points_coords_list = [(point.coords['lat'],point.coords['lng']) for point in locs_list]
    add_points_annotes_list = [point.name for point in locs_list]
    plot_routes.plot_route_on_basemap(raw_routes[0][0], raw_routes[0][1], [add_points_coords_list,add_points_annotes_list]) # plots nearest route