Ejemplo n.º 1
0
 def gene_KML(self, filename_KML, col_txt, rec_range, filename_dire,
              col_edge_degree):
     node_list = []
     node_num = 0
     with open(filename_dire, 'r') as f:
         content = f.readline()
         node_num = int(content.split(' ')[0].split(':')[1])
         print(node_num)
         num = node_num
         content = f.readline()
         while (content and node_num > 0):
             ss = content.replace('\n', '').split(' ')
             node_list.append(ss)
             content = f.readline()
             node_num = node_num - 1
     point_longitude = 0.0
     max_longitude = float(node_list[0][1])
     min_longitude = float(node_list[0][1])
     max_latitude = float(node_list[0][2])
     min_latitude = float(node_list[0][2])
     for i in node_list:
         if float(i[1]) < min_longitude:
             min_longitude = float(i[1])
         if float(i[1]) > max_longitude:
             max_longitude = float(i[1])
         if float(i[2]) < min_latitude:
             min_latitude = float(i[2])
         if float(i[2]) > max_latitude:
             max_latitude = float(i[2])
     point_longitude = (max_longitude + min_longitude) / 2
     point_latitude = (max_latitude + min_latitude) / 2
     orignal_breath_longitude = rec_range['right'] - rec_range['left']
     orignal_breath_latitude = rec_range['top'] - rec_range['bottom']
     longitude_percent = (max_longitude -
                          min_longitude) / orignal_breath_longitude
     latitude_percent = (max_latitude -
                         min_latitude) / orignal_breath_latitude
     bias_longitude = (rec_range['right'] +
                       rec_range['left']) / 2 - point_longitude
     bias_latitude = (rec_range['top'] +
                      rec_range['bottom']) / 2 - point_latitude
     for node in node_list:
         longitude = (float(node[1]) -
                      point_longitude) / longitude_percent + point_longitude
         latitude = (float(node[2]) -
                     point_latitude) / latitude_percent + point_latitude
         col_txt.update_one({'node_id': int(node[0])}, {
             '$set': {
                 'new': {
                     'longitude': longitude + bias_longitude,
                     'latitude': latitude + bias_latitude
                 }
             }
         })
     #生成KML
     f = open(filename_KML, 'w')
     paint = ITDKkml(f)
     paint.setting_line(line_color='ffb40014',
                        line_hight_start=80000,
                        line_hight_end=80000,
                        altitudeMode='relativeToGround',
                        line_width=3)
     paint.setting_point(icon_path='juanjo_Router.png',
                         point_hight=80000,
                         point_scale=0.5)
     paint.head()
     for edge in col_edge_degree.find():
         start_new = col_txt.find_one({
             'longitude':
             edge['start']['longitude'],
             'latitude':
             edge['start']['latitude']
         })
         end_new = col_txt.find_one({
             'longitude': edge['end']['longitude'],
             'latitude': edge['end']['latitude']
         })
         paint.draw_edge(start=start_new['new'], end=end_new['new'])
     for node in col_txt.find():
         paint.draw_point2(longitude=node['new']['longitude'],
                           latitude=node['new']['latitude'])
     paint.tail()
     f.close()
Ejemplo n.º 2
0
# col_point_second.drop()
# for edge in col_edge_degree.find():
#     node1 = edge['start']
#     flag = col_second.find_one({'longitude':node1['longitude'],'latitude':node1['latitude']})
#     if flag:
#         node1=flag['new']
#     flag2 = col_point_second.find_one({'longitude':node1['longitude'],'latitude':node1['latitude']})
#     if not flag2:
#         col_point_second.insert_one(node1)
#
#     node2 = edge['end']
#     flag = col_second.find_one({'longitude':node2['longitude'],'latitude':node2['latitude']})
#     if flag:
#         node2=flag['new']
#     flag2 = col_point_second.find_one({'longitude':node2['longitude'],'latitude':node2['latitude']})
#     if not flag2:
#         col_point_second.insert_one(node2)
#画图,dian
iii = TokyoTopo()
filename_KML = './file/日本整个第二层的点.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
paint.setting_point(icon_path='juanjo_Router.png',
                    point_hight=40000,
                    point_scale=0.3,
                    point_color='')
paint.head()
for node in col_point_second.find():
    paint.draw_point2(longitude=node['longitude'], latitude=node['latitude'])
paint.tail()
f.close()