Example #1
0
#-*- coding:utf-8 -*-
import pymongo
from Tokyo_logistic_topo.Tokyo_logic import TokyoTopo
from Tokyo_logistic_topo.kml_tool import ITDKkml
client = pymongo.MongoClient()
col_second_node = client['itdk_level_new']['shankou_txt']
file_name = './file/link_shankou.kml'
fkml = open(file_name, 'w')
paint = ITDKkml(fkml)
ggg = TokyoTopo()
paint.setting_line(line_color='ffff3ef3',
                   line_width=1.2,
                   line_hight_start=0,
                   line_hight_end=80000,
                   altitudeMode='relativeToGround')
paint.head()
db_name = ['shankou']
for name in db_name:
    db = client[name]
    col_tree_node = db['tree_node']
    col_map = db['map_logi2loca']
    for node in col_tree_node.find():
        if len(node['connect']) > 5:
            docu = col_map.find_one({'node_id': node['node_id']})
            if docu['in']:
                min_dis = 10000
                min_point = {}
                for second_node in col_second_node.find():
                    dis = ggg.get_distance(start=docu['new'],
                                           end=second_node['new'])
                    if dis < min_dis:
Example #2
0
}, {
    'longitude': 3,
    'latitude': 0
}, {
    'longitude': 1.5,
    'latitude': 2
}]
edge = [[1, 4], [2, 4], [3, 4], [4, 6], [5, 6], [6, 7], [6, 8], [7, 9],
        [7, 10], [10, 11]]
point_original = [[0.2, 0.7], [0.5, 1], [0.7, 0.2], [0.8, 0.6], [1.3, 0.3],
                  [1.4, 0.9], [1.1, 1.1], [1.6, 0.4], [1.7, 0.7], [1.6, 1.2],
                  [2, 1.1]]
#原始位置图
file_name = 'original.kml'
fkml = open(file_name, 'w')
paint = ITDKkml(fkml)
paint.setting_line(line_color='cc00ff00', line_width=0.8)
paint.setting_point(
    icon_path='http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png',
    point_scale=0.4,
    point_color='ff00ffff')
paint.head()
polygon_point_num = len(polygon)
i = 0
while i < polygon_point_num - 1:
    paint.draw_edge(start=polygon[i], end=polygon[i + 1])
    i = i + 1
paint.draw_edge(start=polygon[polygon_point_num - 1], end=polygon[0])
for node in point_original:
    paint.draw_orig_point(longitude=node[0], latitude=node[1])
for e in edge:
Example #3
0
#-*- coding:utf-8 -*-
import pymongo
from Tokyo_logistic_topo.kml_tool import ITDKkml
client = pymongo.MongoClient()
col_edge_degree = client['教育科研网']['edge_short']  #边

filename_KML = './教育科研网_短边.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
#paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_degree.find():
    paint.draw_edge(start=edge['start'], end=edge['end'])
paint.tail()
f.close()
Example #4
0
    '北大': [116.3044, 39.9923],
    '清华': [116.3263, 40.003834],
    '中山': [113.25, 23.1167],
    '重庆邮电': [106.5528, 29.5628],
    '华中科大': [114.2734, 30.5801],
    '中科大': [117.2808, 31.8639]
}
point_edge = [[104.058986, 30.676235], [120.161519, 30.295558],
              [121.468973, 31.232382], [116.391464, 39.903152],
              [116.391464, 39.903152], [116.391464, 39.903152],
              [116.391464, 39.903152], [113.295827, 23.116548],
              [106.547819, 29.565937], [114.304197, 30.577806],
              [117.270667, 31.863063]]
filename_KML = './教育科研网_测量点.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
#paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
i = 0
for node in point:
    print(point[node])
    paint.draw_orig_point(longitude=point[node][0], latitude=point[node][1])
    paint.draw_edge(start={
        'longitude': point[node][0],
        'latitude': point[node][1]
    },
                    end={
                        'longitude': point_edge[i][0],
                        'latitude': point_edge[i][1]
                    })
Example #5
0
    col = db[city_col]
    for point in col.find():
        docu = {
            'longitude': point['longitude'],
            'latitude': point['latitude'],
            'new': point['new'],
            'flag': flag_label
        }
        col_second.insert_one(docu)
        print("insert", city_col, point['_id'], flag_label)
    flag_label = flag_label + 1
#画图,边
iii = TokyoTopo()
filename_KML = './file/日本整个第二层.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
paint.setting_line(line_color='33ffff00',
                   line_hight_start=40000,
                   altitudeMode='absolute',
                   line_hight_end=40000,
                   line_width=1)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()

for edge in col_edge_degree.find():
    if iii.get_distance(start=edge['start'], end=edge['end']) < 400:
        flag1 = col_second.find_one({
            'longitude': edge['start']['longitude'],
            'latitude': edge['start']['latitude']
        })
        flag2 = col_second.find_one({
Example #6
0
#-*- coding:utf-8 -*-
from Tokyo_logistic_topo.kml_tool import ITDKkml
polygon_list = []
with open('坐标.txt','r') as f:
    edge_list = []
    content=f.readline()
    while content:
        if content == '\n':
            polygon_list.append(edge_list)
            edge_list = []
        else:
            coor = content.replace('\n','').split('\t')
            print(coor)
            point  = {'longitude':coor[1],'latitude':coor[0]}
            edge_list.append(point)
        content = f.readline()
    polygon_list.append(edge_list)
print(polygon_list[0])
f=open('polygon.kml','w')
instance = ITDKkml(f)
instance.setting_line(line_color='641400FF',line_width=4)
instance.head()
for polygon in polygon_list:
    lenth = len(polygon)
    i = 0
    while i<(lenth-1):
        instance.draw_edge(start=polygon[i],end=polygon[i+1])
        i = i+1
    instance.draw_edge(start=polygon[-1],end=polygon[0])
instance.tail()
Example #7
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()
Example #8
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()
Example #9
0
#-*- coding:utf-8 -*-
import pymongo
from Tokyo_logistic_topo.kml_tool import ITDKkml
client = pymongo.MongoClient()
col_edge_degree = client['教育科研网']['大学边']  #边
col_point = client['教育科研网']['大学里面的点']  #边
filename_KML = './教育科研网_大学边.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
#paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_degree.find():
    paint.draw_edge(start=edge['start'], end=edge['end'])
paint.tail()
f.close()

col_edge_leaf = client['教育科研网']['叶子边']
filename_KML = './教育科研网_大学叶子边.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
#paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_leaf.find():
    paint.draw_edge(start=edge['start'], end=edge['end'])
paint.tail()
f.close()

col_point_leaf = client['教育科研网']['叶子节点']
filename_KML = './教育科研网_大学里面的叶子点.kml'
Example #10
0
#-*- coding:utf-8 -*-
import pymongo
from Tokyo_logistic_topo.kml_tool import ITDKkml
from Tokyo_logistic_topo.Tokyo_logic import TokyoTopo
client = pymongo.MongoClient()
col_edge_degree = client['教育科研网']['node']#边

filename_KML = './教育科研网_点.kml'
f=open(filename_KML,'w')
paint = ITDKkml(f)
#paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for node in col_edge_degree.find():
    paint.draw_orig_point(longitude=node['longitude'],latitude=node['latitude'])
paint.tail()
f.close()
Example #11
0
 def geneKML_no_leaf(self,
                     col_Tokyo_tree,
                     col_map,
                     col_Tokyo_tree_node,
                     file_name=r'Tokyo.kmz'):
     fkml = open(file_name, 'w')
     paint = ITDKkml(fkml)
     paint.setting_line(line_color='cc00ff00', line_width=0.8)
     paint.setting_point(
         icon_path=
         'http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png',
         point_scale=0.4,
         point_color='ff00ffff')
     paint.head()
     paint.setting_line(line_color='cc0000ff', line_width=1.7)
     paint.setting_point(
         icon_path=
         'http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png',
         point_scale=1,
         point_color='cc0000ff')
     for edge in col_Tokyo_tree.find():
         start_edge = col_map.find_one({'node_id': edge['start']})
         end_edge = col_map.find_one({'node_id': edge['end']})
         if start_edge['in'] and end_edge['in']:
             s = col_Tokyo_tree_node.find_one({'node_id': edge['start']})
             e = col_Tokyo_tree_node.find_one({'node_id': edge['end']})
             #这种方法会使叶子节点父节点多次绘制
             if s['connect'] == [] or e['connect'] == []:
                 paint.draw_edge(start=start_edge['new'],
                                 end=end_edge['new'])
             else:
                 paint.draw_orig_edge(start=start_edge['new'],
                                      end=end_edge['new'])
     for node in col_map.find():
         if node['in']:
             docu = col_Tokyo_tree_node.find_one(
                 {'node_id': node['node_id']})
             if len(docu['connect']) < 5:
                 paint.draw_point2(longitude=node['new']['longitude'],
                                   latitude=node['new']['latitude'])
             else:
                 paint.draw_orig_point(longitude=node['new']['longitude'],
                                       latitude=node['new']['latitude'])
         pass
     paint.tail()
     fkml.close()
Example #12
0
            }
        }
        col_edge_merge.insert_one(docu)
for edge in col_edge2.find():
    docu = {
        'start': {
            'longitude': edge['start']['longitude'],
            'latitude': edge['start']['latitude']
        },
        'end': {
            'longitude': edge['end']['longitude'],
            'latitude': edge['end']['latitude']
        }
    }
    flag = col_edge_merge.find_one(docu)
    if not flag:
        col_edge_merge.insert_one(docu)
filename_KML = './file/日本整个第二层merge.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
paint.setting_line(line_color='ffb40014',
                   line_hight_start=80000,
                   line_hight_end=80000,
                   line_width=1,
                   altitudeMode='relativeToGround')
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_merge.find():
    paint.draw_edge(start=edge['start'], end=edge['end'])
paint.tail()
f.close()
Example #13
0
# print('the number of point thats degree is greater than',degree,'is:',col_point_degree.count())
#
col_edge_degree = client['itdkall_info']['edge_location_degree_1000'] #日本度数大于某一点的点所组成的边的集合
# col_edge_degree.drop()
# i=1
# for edge in col_edge.find():
#     flag1 = col_point_degree.find_one({'longitude':edge['start']['longitude'], 'latitude':edge['start']['latitude']})
#     if flag1:
#         flag2 = col_point_degree.find_one({'longitude':edge['end']['longitude'], 'latitude':edge['end']['latitude']})
#         if flag2:
#             if not col_edge_degree.find_one({'start':{'longitude':edge['start']['longitude'],'latitude':edge['start']['latitude']},
#                 'end':{'longitude':edge['end']['longitude'], 'latitude':edge['end']['latitude']}}) and edge['start']['longitude']!=edge['end']['longitude']\
#                     and edge['start']['latitude']!=edge['end']['latitude']:
#                 col_edge_degree.insert_one({'start':{'longitude':edge['start']['longitude'],'latitude':edge['start']['latitude']},'end':{'longitude':edge['end']['longitude'], 'latitude':edge['end']['latitude']}})
#                 print(edge['_id'])
#     print(i)
#     i=i+1
#画图
iii=TokyoTopo()
filename_KML = './file/日本整个第二层1000.kml'
f=open(filename_KML,'w')
paint = ITDKkml(f)
paint.setting_line(line_color= 'ffb40014',line_hight_start=0,line_hight_end=0,line_width=1)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_degree.find():
    if iii.get_distance(start=edge['start'],end=edge['end'])<400:
        paint.draw_edge(start=edge['start'],end=edge['end'])
paint.tail()
f.close()
Example #14
0
#-*- coding:utf-8 -*-
import pymongo
from Tokyo_logistic_topo.kml_tool import ITDKkml
from Tokyo_logistic_topo.Tokyo_logic import TokyoTopo
client = pymongo.MongoClient()
col_edge_degree = client['教育科研网']['edge']#边

filename_KML = './教育科研网.kml'
f=open(filename_KML,'w')
paint = ITDKkml(f)
paint.setting_line(line_hight_start=40000,line_hight_end=40000,line_width=5)
#paint.setting_point(icon_path='juanjo_Router.png',point_hight=80000,point_scale=0.5)
paint.head()
for edge in col_edge_degree.find():
    paint.draw_edge(start=edge['start'],end=edge['end'])
paint.tail()
f.close()
Example #15
0
from Tokyo_logistic_topo.kml_tool import ITDKkml
point1 = {'longitude': 136.9025, 'latitude': 35.1598}
point2 = {'longitude': 127.675, 'latitude': 26.185}
section = 5
lo_section = (point1['longitude'] - point2['longitude']) / section
la_section = (point1['latitude'] - point2['latitude']) / section
print(lo_section, la_section)
tem1 = {}
tem2 = {}
tem1['longitude'] = point1['longitude']
tem1['latitude'] = point1['latitude']
tem2['longitude'] = point1['longitude'] - lo_section
tem2['latitude'] = point1['latitude'] - la_section

filename_KML = './file/1234.kml'
f = open(filename_KML, 'w')
paint = ITDKkml(f)
paint.head()
i = 1
while i < 5:
    print(tem1, tem2)
    paint.draw_edge(start=tem1, end=tem2)
    i += 1
    tem1['longitude'] = tem2['longitude']
    tem1['latitude'] = tem2['latitude']
    tem2['longitude'] = point1['longitude'] - lo_section * i
    tem2['latitude'] = point1['latitude'] - la_section * i
paint.draw_edge(start=tem1, end=point2)
paint.tail()
f.close()