使用folium做地图可视化#
!pip install folium
Collecting folium
?25l Downloading https://files.pythonhosted.org/packages/72/ff/004bfe344150a064e558cb2aedeaa02ecbf75e60e148a55a9198f0c41765/folium-0.10.0-py2.py3-none-any.whl (91kB)
100% |████████████████████████████████| 92kB 72kB/s ta 0:00:0111
?25hCollecting branca>=0.3.0 (from folium)
Using cached https://files.pythonhosted.org/packages/63/36/1c93318e9653f4e414a2e0c3b98fc898b4970e939afeedeee6075dd3b703/branca-0.3.1-py3-none-any.whl
Requirement already satisfied: numpy in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (1.16.2)
Requirement already satisfied: requests in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (2.21.0)
Requirement already satisfied: jinja2>=2.9 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (2.10)
Requirement already satisfied: six in /Users/datalab/anaconda3/lib/python3.7/site-packages (from branca>=0.3.0->folium) (1.12.0)
Requirement already satisfied: certifi>=2017.4.17 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (2019.3.9)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (2.8)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (1.24.1)
Requirement already satisfied: MarkupSafe>=0.23 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from jinja2>=2.9->folium) (1.1.1)
Installing collected packages: branca, folium
Successfully installed branca-0.3.1 folium-0.10.0
!pip install vincent
Collecting vincent
Using cached https://files.pythonhosted.org/packages/11/bf/a12ecaa21a2e376a16de67e09f64a38a4acd95e04e5dc35ad2f13a6f0bfd/vincent-0.4.4.tar.gz
Requirement already satisfied: pandas in /Users/datalab/anaconda3/lib/python3.7/site-packages (from vincent) (0.24.2)
Requirement already satisfied: pytz>=2011k in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (2018.9)
Requirement already satisfied: python-dateutil>=2.5.0 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (2.8.0)
Requirement already satisfied: numpy>=1.12.0 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (1.16.2)
Requirement already satisfied: six>=1.5 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from python-dateutil>=2.5.0->pandas->vincent) (1.12.0)
Building wheels for collected packages: vincent
Building wheel for vincent (setup.py) ... ?25ldone
?25h Stored in directory: /Users/datalab/Library/Caches/pip/wheels/4c/0d/8a/65f34c765c6094a71cce3e42a49a26533eef61695e9b505f03
Successfully built vincent
Installing collected packages: vincent
Successfully installed vincent-0.4.4
import folium, jinja2, vincent
from IPython.display import IFrame
from IPython.core.display import HTML
print(folium.__file__)
print(folium.__version__)
/Users/datalab/anaconda3/lib/python3.7/site-packages/folium/__init__.py
0.10.0
读入数据#
import pickle
node_pkl = open('../data/nodeLoc.pkl', 'rb')
nodeLoc = pickle.load(node_pkl)
node_pkl.close()
edge_pkl = open('../data/edgeLoc.pkl', 'rb')
edgeLoc = pickle.load(edge_pkl)
edge_pkl.close()
绘制地图#
map_osm = folium.Map(location=[45.5236, -122.6750])
map_osm
beijing = folium.Map(location=(39.90403,116.407526), zoom_start=10)
beijing
MarkerCluster#
from folium.plugins import MarkerCluster
locations = nodeLoc
popups = ['{}'.format(loc) for loc in locations]
beijing.add_child(MarkerCluster(locations=locations, popups=popups))
HeatMap#
from folium import plugins
beijing.add_child(plugins.HeatMap(locations))
/Users/datalab/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:3: FutureWarning: Method `add_children` is deprecated. Please use `add_child` instead.
This is separate from the ipykernel package so we can avoid doing imports until
beijing.save('beijing_mobile.html')
PolyLine#
colors = ['blue','orange', 'red']
for k, community in enumerate(edgeLoc):
locations = edgeLoc[community]
for loc in locations:
line = folium.PolyLine(locations=loc, color=colors[k])
beijing.add_child(line)
beijing
beijing.save('/Users/chengjun/GitHub/cjc2016/vis/beijing_mobile_without_heat.html')
Convert HTML to PNG#
Open the generated html with chrome,
Print to save it as pdf,
Open the pdf and export it as png or the other formats.
Data preparation#
python数据持久存储:pickle模块的基本使用 python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
import pickle
output = open('/Users/chengjun/GitHub/cjc2016/data/edgeLoc.pkl', 'wb')
# Pickle dictionary using protocol 0.
pickle.dump(edgeLoc, output)
output.close()
output = open('/Users/chengjun/GitHub/cjc2016/data/nodeLoc.pkl', 'wb')
# Pickle list using protocol -1
pickle.dump(nodeLoc, output, -1)
output.close()
edgeLoc = {12196: [[(39.990111, 116.330251), (39.990301, 116.339161)],
[(39.990111, 116.330251), (39.991104, 116.343872)],
[(39.990111, 116.330251), (40.010696, 116.338602)],
[(39.975028, 116.311556), (40.008801, 116.267881)],
[(39.884931, 116.672281), (39.886901, 116.675301)],
[(39.884931, 116.672281), (39.983333, 116.309944)],
[(39.990311, 116.351102), (39.990301, 116.339161)],
[(39.990311, 116.351102), (39.991104, 116.343872)],
[(39.990311, 116.351102), (39.886901, 116.675301)],
[(39.990311, 116.351102), (39.990531, 116.363311)],
[(39.990311, 116.351102), (39.989352, 116.356064)],
[(39.990311, 116.351102), (40.000241, 116.352881)],
[(40.017402, 116.305637), (40.020209, 116.302722)],
[(39.920349, 116.327869), (39.979381, 116.308711)],
[(39.920349, 116.327869), (39.905001, 116.342225)],
[(39.920349, 116.327869), (39.977181, 116.308881)],
[(39.988501, 116.318872), (39.984811, 116.315931)],
[(39.988501, 116.318872), (39.981691, 116.332721)],
[(39.988501, 116.318872), (39.983061, 116.319341)],
[(39.988501, 116.318872), (39.978994, 116.329721)],
[(39.763371011, 116.322339649), (39.977181, 116.308881)],
[(39.994141, 116.405721), (39.977237, 116.308991)],
[(40.050083, 116.298417), (40.017394, 116.325471)],
[(40.050083, 116.298417), (39.980345, 116.370601)],
[(40.050083, 116.298417), (40.010696, 116.338602)],
[(39.984811, 116.315931), (39.983061, 116.319341)],
[(39.984811, 116.315931), (39.978994, 116.329721)],
[(39.978994, 116.329721), (39.990301, 116.339161)],
[(39.978994, 116.329721), (39.981691, 116.332721)],
[(39.978994, 116.329721), (39.983061, 116.319341)],
[(39.978994, 116.329721), (39.989352, 116.356064)],
[(39.981691, 116.332721), (39.990301, 116.339161)],
[(39.981691, 116.332721), (40.017394, 116.325471)],
[(39.983118, 116.310884), (39.983464, 116.308398)],
[(39.983464, 116.308398), (39.983471, 116.308391)],
[(39.983464, 116.308398), (39.983056, 116.309167)],
[(40.017394, 116.325471), (39.990301, 116.339161)],
[(40.017394, 116.325471), (40.008171, 116.328254)],
[(40.017394, 116.325471), (40.010696, 116.338602)],
[(39.977181, 116.308881), (39.977237, 116.308991)],
[(39.977181, 116.308881), (39.981928, 116.308731)],
[(39.592431, 116.183104), (39.983333, 116.309944)],
[(39.983056, 116.309167), (39.983333, 116.309944)],
[(40.000241, 116.352881), (39.990301, 116.339161)],
[(40.000241, 116.352881), (39.990531, 116.363311)],
[(40.000241, 116.352881), (39.991104, 116.343872)],
[(40.000241, 116.352881), (40.010696, 116.338602)],
[(39.975395, 116.313438), (39.977237, 116.308991)],
[(39.979381, 116.308711), (39.905001, 116.342225)],
[(39.990301, 116.339161), (39.991104, 116.343872)],
[(39.991541, 116.319551), (39.983333, 116.309944)],
[(40.008171, 116.328254), (40.010696, 116.338602)],
[(39.981928, 116.308731), (39.977147, 116.304633)],
[(40.008801, 116.267881), (40.006201, 116.279001)],
[(39.978871, 116.306551), (39.977147, 116.304633)],
[(39.977237, 116.308991), (39.983333, 116.309944)],
[(39.981862, 116.317841), (39.983061, 116.319341)],
[(39.990531, 116.363311), (39.989352, 116.356064)]],
12261: [[(40.200491, 116.179253), (40.183415, 116.161574)],
[(40.200491, 116.179253), (40.183997, 116.191357)],
[(40.200491, 116.179253), (40.218981, 116.230971)],
[(40.226655, 116.226144), (40.145755, 116.302861)],
[(40.226655, 116.226144), (40.210773, 116.239262)],
[(40.226655, 116.226144), (40.222097, 116.220571)],
[(40.226655, 116.226144), (40.218981, 116.230971)],
[(40.226655, 116.226144), (40.213888, 116.221534)],
[(40.226655, 116.226144), (40.213869, 116.234626)],
[(40.055072, 116.313491), (40.076948, 116.302963)],
[(40.055072, 116.313491), (40.098774, 116.302953)],
[(40.171594, 116.244031), (40.210773, 116.239262)],
[(40.171594, 116.244031), (40.183997, 116.191357)],
[(40.100662, 116.276404), (40.098981, 116.285883)],
[(40.100662, 116.276404), (40.096239, 116.272141)],
[(40.100662, 116.276404), (40.112621, 116.289151)],
[(40.100662, 116.276404), (40.095381, 116.283131)],
[(40.100662, 116.276404), (40.106016, 116.276689)],
[(40.100662, 116.276404), (40.103275, 116.284444)],
[(40.216718, 116.216522), (39.792501, 116.486851)],
[(40.216718, 116.216522), (40.213888, 116.221534)],
[(40.216718, 116.216522), (40.212898, 116.228058)],
[(40.216718, 116.216522), (40.218981, 116.230971)],
[(40.029814, 116.317095), (40.034031, 116.319871)],
[(40.029814, 116.317095), (40.039607, 116.316384)],
[(40.029814, 116.317095), (40.035833, 116.309445)],
[(40.056215, 116.327246), (40.058111, 116.330667)],
[(40.056215, 116.327246), (40.047312, 116.333848)],
[(40.056215, 116.327246), (40.055791, 116.324361)],
[(40.056215, 116.327246), (40.057821, 116.340871)],
[(40.240347, 116.117703), (40.231194, 116.118111)],
[(40.240347, 116.117703), (40.235611, 116.124289)],
[(40.240347, 116.117703), (40.220667, 116.239556)],
[(40.133908, 116.260049), (40.125971, 116.252163)],
[(40.133908, 116.260049), (40.125517, 116.261944)],
[(40.133908, 116.260049), (40.131848, 116.266921)],
[(40.073638, 116.310218), (40.083291, 116.322045)],
[(40.073638, 116.310218), (40.076948, 116.302963)],
[(40.073638, 116.310218), (40.077062, 116.325645)],
[(40.073638, 116.310218), (40.068287, 116.333102)],
[(40.073638, 116.310218), (40.073022, 116.316664)],
[(40.073022, 116.316664), (40.083291, 116.322045)],
[(40.073022, 116.316664), (40.058111, 116.330667)],
[(40.073022, 116.316664), (40.089172, 116.302284)],
[(40.073022, 116.316664), (40.065611, 116.322079)],
[(40.073022, 116.316664), (40.087491, 116.324951)],
[(40.073022, 116.316664), (40.099121, 116.338071)],
[(40.073022, 116.316664), (40.077062, 116.325645)],
[(40.073022, 116.316664), (40.068287, 116.333102)],
[(40.073022, 116.316664), (40.076948, 116.302963)],
[(40.231194, 116.118111), (40.235611, 116.124289)],
[(40.052918, 116.369476), (40.058111, 116.330667)],
[(40.052918, 116.369476), (40.041361, 116.373921)],
[(40.140561, 116.262416), (40.141792, 116.258313)],
[(40.140561, 116.262416), (40.125517, 116.261944)],
[(40.140561, 116.262416), (40.131848, 116.266921)],
[(40.134251, 116.252193), (40.125517, 116.261944)],
[(40.035833, 116.309445), (40.058111, 116.330667)],
[(40.035833, 116.309445), (40.043501, 116.298251)],
[(40.035833, 116.309445), (40.034978, 116.306693)],
[(40.035833, 116.309445), (40.062711, 116.295361)],
[(40.035833, 116.309445), (40.039607, 116.316384)],
[(40.035833, 116.309445), (40.034031, 116.319871)],
[(40.206013, 116.223627), (40.209889, 116.228222)],
[(40.206013, 116.223627), (40.213888, 116.221534)],
[(40.076948, 116.302963), (40.083291, 116.322045)],
[(40.076948, 116.302963), (40.089172, 116.302284)],
[(40.076948, 116.302963), (40.087389, 116.300231)],
[(40.076948, 116.302963), (40.043761, 116.285851)],
[(40.076948, 116.302963), (40.098774, 116.302953)],
[(40.076948, 116.302963), (40.087491, 116.324951)],
[(40.076948, 116.302963), (40.099121, 116.338071)],
[(40.076948, 116.302963), (40.077062, 116.325645)],
[(40.076948, 116.302963), (40.069228, 116.299637)],
[(40.112621, 116.289151), (40.125517, 116.261944)],
[(40.112621, 116.289151), (40.118531, 116.267087)],
[(40.112621, 116.289151), (40.131848, 116.266921)],
[(40.038109, 116.323645), (40.039607, 116.316384)],
[(40.118531, 116.267087), (40.120147, 116.254641)],
[(40.118531, 116.267087), (40.131848, 116.266921)],
[(40.118531, 116.267087), (40.106016, 116.276689)],
[(40.118531, 116.267087), (40.125517, 116.261944)],
[(40.118531, 116.267087), (40.218981, 116.230971)],
[(40.118531, 116.267087), (40.125971, 116.252163)],
[(40.034261, 116.358151), (40.040439, 116.349094)],
[(40.145939, 116.252157), (40.125517, 116.261944)],
[(40.145939, 116.252157), (40.218981, 116.230971)],
[(40.081833, 116.294194), (40.098774, 116.302953)],
[(40.081833, 116.294194), (40.235611, 116.124289)],
[(40.081833, 116.294194), (40.089172, 116.302284)],
[(40.043501, 116.298251), (40.043761, 116.285851)],
[(40.043501, 116.298251), (40.055121, 116.307781)],
[(40.043501, 116.298251), (40.034579, 116.288291)],
[(40.043501, 116.298251), (40.034031, 116.319871)],
[(40.125517, 116.261944), (40.209278, 116.216359)],
[(40.125517, 116.261944), (40.213888, 116.221534)],
[(40.125517, 116.261944), (40.131848, 116.266921)],
[(40.125517, 116.261944), (40.120147, 116.254641)],
[(40.125517, 116.261944), (40.152972, 116.298361)],
[(40.125517, 116.261944), (40.141792, 116.258313)],
[(40.125517, 116.261944), (40.103275, 116.284444)],
[(40.108971, 116.268313), (40.106016, 116.276689)],
[(40.213869, 116.234626), (40.215364, 116.240961)],
[(40.213869, 116.234626), (40.210773, 116.239262)],
[(40.213869, 116.234626), (40.211233, 116.239117)],
[(40.213869, 116.234626), (40.212442, 116.246563)],
[(40.213869, 116.234626), (40.209278, 116.216359)],
[(40.213869, 116.234626), (40.216783, 116.256904)],
[(40.213869, 116.234626), (40.209889, 116.228222)],
[(40.213869, 116.234626), (40.220667, 116.239556)],
[(40.213869, 116.234626), (40.212647, 116.251881)],
[(40.213869, 116.234626), (40.213888, 116.221534)],
[(40.213869, 116.234626), (40.218981, 116.230971)],
[(40.213869, 116.234626), (40.212898, 116.228058)],
[(40.213869, 116.234626), (40.183412, 116.232075)],
[(40.213869, 116.234626), (40.214867, 116.247008)],
[(40.212898, 116.228058), (40.210773, 116.239262)],
[(40.212898, 116.228058), (40.211233, 116.239117)],
[(40.212898, 116.228058), (40.213888, 116.221534)],
[(40.212898, 116.228058), (40.209889, 116.228222)],
[(40.212898, 116.228058), (40.220667, 116.239556)],
[(40.212898, 116.228058), (40.218981, 116.230971)],
[(40.212647, 116.251881), (40.214867, 116.247008)],
[(40.212647, 116.251881), (40.210773, 116.239262)],
[(40.212647, 116.251881), (40.212442, 116.246563)],
[(40.212647, 116.251881), (40.216783, 116.256904)],
[(39.787638, 116.493917), (39.790501, 116.483001)],
[(39.787638, 116.493917), (39.787601, 116.493901)],
[(39.787638, 116.493917), (39.790141, 116.482981)],
[(39.787638, 116.493917), (40.187917, 117.153667)],
[(39.787638, 116.493917), (39.792501, 116.486851)],
[(40.033701, 116.330251), (40.039222, 116.339751)],
[(40.039607, 116.316384), (40.034978, 116.306693)],
[(40.039607, 116.316384), (40.034031, 116.319871)],
[(40.039607, 116.316384), (40.041002, 116.315417)],
[(40.034031, 116.319871), (40.034978, 116.306693)],
[(40.034031, 116.319871), (40.034579, 116.288291)],
[(40.040439, 116.349094), (40.058111, 116.330667)],
[(40.040439, 116.349094), (40.041361, 116.373921)],
[(40.154301, 116.250241), (40.156415, 116.244773)],
[(40.154301, 116.250241), (40.158691, 116.266905)],
[(40.034579, 116.288291), (40.034978, 116.306693)],
[(40.103275, 116.284444), (40.106016, 116.276689)],
[(40.103275, 116.284444), (40.098981, 116.285883)],
[(40.083291, 116.322045), (40.089172, 116.302284)],
[(40.083291, 116.322045), (40.098774, 116.302953)],
[(40.083291, 116.322045), (40.087491, 116.324951)],
[(40.083291, 116.322045), (40.099121, 116.338071)],
[(40.083291, 116.322045), (40.077062, 116.325645)],
[(40.083291, 116.322045), (40.068287, 116.333102)],
[(40.083291, 116.322045), (40.081066, 116.342998)],
[(40.083291, 116.322045), (40.084444, 116.331417)],
[(40.087389, 116.300231), (40.089172, 116.302284)],
[(40.156415, 116.244773), (40.197801, 116.222841)],
[(40.156415, 116.244773), (40.158691, 116.266905)],
[(40.150118, 116.264351), (40.146371, 116.273861)],
[(40.218981, 116.230971), (40.210773, 116.239262)],
[(40.218981, 116.230971), (40.212442, 116.246563)],
[(40.218981, 116.230971), (40.197801, 116.222841)],
[(40.218981, 116.230971), (40.222097, 116.220571)],
[(40.218981, 116.230971), (40.209889, 116.228222)],
[(40.218981, 116.230971), (40.220667, 116.239556)],
[(40.218981, 116.230971), (40.213888, 116.221534)],
[(40.218981, 116.230971), (40.152972, 116.298361)],
[(40.084444, 116.331417), (40.087491, 116.324951)],
[(40.084444, 116.331417), (40.099121, 116.338071)],
[(40.084444, 116.331417), (40.068287, 116.333102)],
[(40.084444, 116.331417), (40.081066, 116.342998)],
[(40.084444, 116.331417), (40.152972, 116.298361)],
[(40.461806, 115.968917), (40.462333, 115.980861)],
[(40.461806, 115.968917), (40.464911, 115.992917)],
[(40.461806, 115.968917), (40.463311, 115.970806)],
[(40.055791, 116.324361), (40.058111, 116.330667)],
[(40.055791, 116.324361), (40.065611, 116.322079)],
[(39.790501, 116.483001), (39.790141, 116.482981)],
[(39.790501, 116.483001), (40.187917, 117.153667)],
[(39.790501, 116.483001), (39.792501, 116.486851)],
[(40.209889, 116.228222), (40.210773, 116.239262)],
[(40.209889, 116.228222), (40.211233, 116.239117)],
[(40.209889, 116.228222), (40.222097, 116.220571)],
[(40.209889, 116.228222), (40.220667, 116.239556)],
[(40.220667, 116.239556), (40.215364, 116.240961)],
[(40.220667, 116.239556), (40.210773, 116.239262)],
[(40.220667, 116.239556), (40.222097, 116.220571)],
[(40.220667, 116.239556), (40.167991, 116.314012)],
[(40.220667, 116.239556), (40.223035, 116.276701)],
[(40.462333, 115.980861), (40.463311, 115.970806)],
[(40.095381, 116.283131), (40.106016, 116.276689)],
[(40.095381, 116.283131), (40.098981, 116.285883)],
[(40.095381, 116.283131), (40.089172, 116.302284)],
[(40.210773, 116.239262), (40.215364, 116.240961)],
[(40.210773, 116.239262), (40.222097, 116.220571)],
[(40.210773, 116.239262), (40.211233, 116.239117)],
[(40.210773, 116.239262), (40.212442, 116.246563)],
[(40.210773, 116.239262), (40.214867, 116.247008)],
[(40.211233, 116.239117), (40.212442, 116.246563)],
[(40.212442, 116.246563), (40.215364, 116.240961)],
[(40.212442, 116.246563), (40.214867, 116.247008)],
[(40.212442, 116.246563), (40.222097, 116.220571)],
[(40.212442, 116.246563), (40.216783, 116.256904)],
[(40.222097, 116.220571), (40.145755, 116.302861)],
[(40.222097, 116.220571), (40.213888, 116.221534)],
[(40.222097, 116.220571), (40.220905, 116.213595)],
[(40.120147, 116.254641), (40.125971, 116.252163)],
[(40.120147, 116.254641), (40.131848, 116.266921)],
[(40.125971, 116.252163), (40.131848, 116.266921)],
[(40.216801, 116.203957), (40.183415, 116.161574)],
[(40.220905, 116.213595), (40.235611, 116.124289)],
[(40.220905, 116.213595), (40.213888, 116.221534)],
[(40.170417, 116.269783), (40.141792, 116.258313)],
[(40.170417, 116.269783), (40.158691, 116.266905)],
[(40.065611, 116.322079), (40.058111, 116.330667)],
[(40.065611, 116.322079), (40.055121, 116.307781)],
[(40.065611, 116.322079), (40.052505, 116.173674)],
[(40.065611, 116.322079), (40.068287, 116.333102)],
[(40.065611, 116.322079), (40.051301, 116.311001)],
[(40.197801, 116.222841), (40.209278, 116.216359)],
[(40.131848, 116.266921), (40.145014, 116.293074)],
[(40.131848, 116.266921), (40.146371, 116.273861)],
[(40.145014, 116.293074), (40.145755, 116.302861)],
[(40.145014, 116.293074), (40.152972, 116.298361)],
[(40.145014, 116.293074), (40.146371, 116.273861)],
[(40.152972, 116.298361), (40.145755, 116.302861)],
[(40.152972, 116.298361), (40.167991, 116.314012)],
[(40.152972, 116.298361), (40.141792, 116.258313)],
[(40.043761, 116.285851), (40.051301, 116.311001)],
[(40.047312, 116.333848), (40.058111, 116.330667)],
[(40.047312, 116.333848), (40.052505, 116.173674)],
[(40.098774, 116.302953), (40.098981, 116.285883)],
[(40.122783, 116.319914), (40.099121, 116.338071)],
[(40.122783, 116.319914), (40.106016, 116.276689)],
[(40.122783, 116.319914), (40.136843, 116.314051)],
[(40.087491, 116.324951), (40.089172, 116.302284)],
[(40.087491, 116.324951), (40.099121, 116.338071)],
[(40.087491, 116.324951), (40.077062, 116.325645)],
[(40.087491, 116.324951), (40.081066, 116.342998)],
[(40.081066, 116.342998), (40.099121, 116.338071)],
[(40.106016, 116.276689), (40.098981, 116.285883)],
[(40.062711, 116.295361), (39.898054, 116.219284)],
[(40.062711, 116.295361), (40.052505, 116.173674)],
[(40.062711, 116.295361), (40.068287, 116.333102)],
[(40.062711, 116.295361), (40.096239, 116.272141)],
[(40.032181, 116.340731), (39.790141, 116.482981)],
[(40.032181, 116.340731), (40.034231, 116.327471)],
[(40.032181, 116.340731), (40.039222, 116.339751)],
[(40.052505, 116.173674), (40.034978, 116.306693)],
[(40.052505, 116.173674), (40.069228, 116.299637)],
[(40.052505, 116.173674), (40.051301, 116.311001)],
[(39.790141, 116.482981), (40.187917, 117.153667)],
[(40.214867, 116.247008), (40.215364, 116.240961)],
[(40.168968, 116.311797), (40.167991, 116.314012)],
[(40.096239, 116.272141), (40.158691, 116.266905)],
[(40.077062, 116.325645), (40.099121, 116.338071)],
[(40.077062, 116.325645), (40.068287, 116.333102)],
[(39.787601, 116.493901), (39.792501, 116.486851)],
[(40.051301, 116.311001), (40.055121, 116.307781)],
[(40.051301, 116.311001), (40.034978, 116.306693)],
[(40.034978, 116.306693), (40.022108, 116.307999)],
[(40.066778, 116.342167), (40.066421, 116.341311)],
[(40.066778, 116.342167), (40.068287, 116.333102)],
[(40.069228, 116.299637), (40.068287, 116.333102)],
[(39.947101, 116.309841), (40.089172, 116.302284)],
[(40.464911, 115.992917), (40.447056, 115.968972)],
[(40.136843, 116.314051), (40.145755, 116.302861)],
[(40.136843, 116.314051), (40.167991, 116.314012)],
[(40.146371, 116.273861), (40.089172, 116.302284)],
[(40.145755, 116.302861), (40.167991, 116.314012)],
[(40.209278, 116.216359), (40.213888, 116.221534)],
[(40.068287, 116.333102), (40.058111, 116.330667)],
[(40.057821, 116.340871), (40.058111, 116.330667)],
[(40.167991, 116.314012), (40.166291, 116.343241)]],
12285: [[(39.923121, 116.515441), (39.915401, 116.556331)],
[(39.923121, 116.515441), (39.921471, 116.399411)],
[(39.923121, 116.515441), (39.910051, 116.514661)],
[(39.923121, 116.515441), (39.918611, 116.507181)],
[(39.923121, 116.515441), (39.920111, 116.546667)],
[(39.923121, 116.515441), (39.926101, 116.528501)],
[(40.005278, 116.223278), (39.912491, 116.533221)],
[(39.938245, 116.570841), (39.920071, 116.536031)],
[(39.917778, 116.555001), (39.920111, 116.546667)],
[(39.918611, 116.507181), (39.921181, 116.494821)],
[(39.916032, 116.529796), (39.912491, 116.533221)],
[(39.921181, 116.494821), (39.920071, 116.536031)],
[(39.918681, 116.507301), (39.925291, 116.472391)],
[(39.910051, 116.514661), (39.912917, 116.518306)],
[(39.916191, 116.528441), (39.917275, 116.524194)],
[(39.916191, 116.528441), (39.912101, 116.354001)],
[(39.916191, 116.528441), (39.918461, 116.523139)],
[(39.911641, 116.547851), (39.920071, 116.536031)],
[(39.911641, 116.547851), (39.915401, 116.556331)],
[(39.887901, 116.331001), (39.920071, 116.536031)],
[(39.887901, 116.331001), (40.039091, 116.305781)],
[(39.907611, 116.572151), (39.920071, 116.536031)],
[(39.857296, 116.078922), (39.920071, 116.536031)],
[(39.857296, 116.078922), (39.915401, 116.556331)],
[(39.920071, 116.536031), (39.909691, 116.591661)],
[(39.920071, 116.536031), (39.912491, 116.533221)],
[(39.920071, 116.536031), (39.915401, 116.556331)],
[(39.920071, 116.536031), (39.976213, 116.573121)],
[(39.920071, 116.536031), (39.908941, 116.525101)],
[(39.920071, 116.536031), (40.008061, 116.448869)],
[(39.920071, 116.536031), (39.837781, 116.389081)],
[(39.920071, 116.536031), (39.926101, 116.528501)],
[(39.865821, 116.488651), (39.912491, 116.533221)],
[(40.129231, 117.106491), (39.892091, 116.392511)],
[(39.920111, 116.546667), (39.915401, 116.556331)],
[(39.912101, 116.354001), (39.912491, 116.533221)],
[(39.912491, 116.533221), (39.908941, 116.525101)],
[(39.912491, 116.533221), (40.039091, 116.305781)],
[(39.912491, 116.533221), (39.915401, 116.556331)],
[(39.912491, 116.533221), (39.913461, 116.430731)],
[(39.915401, 116.556331), (39.920889, 116.557278)],
[(39.915401, 116.556331), (39.908941, 116.525101)]]}
nodeLoc = [(40.200491, 116.179253),
(39.988228, 116.308678),
(39.990111, 116.330251),
(40.226655, 116.226144),
(39.918611, 116.507181),
(40.005278, 116.223278),
(39.917778, 116.555001),
(40.055072, 116.313491),
(40.129231, 117.106491),
(40.171594, 116.244031),
(40.050083, 116.298417),
(40.136153, 116.132506),
(40.100662, 116.276404),
(39.920111, 116.546667),
(39.988231, 116.311401),
(40.216718, 116.216522),
(40.029814, 116.317095),
(40.056215, 116.327246),
(40.240347, 116.117703),
(40.133908, 116.260049),
(40.073638, 116.310218),
(39.910051, 116.514661),
(40.073022, 116.316664),
(39.933961, 116.724013),
(39.983464, 116.308398),
(40.017394, 116.325471),
(40.026111, 116.304511),
(40.231194, 116.118111),
(39.908941, 116.525101),
(39.920071, 116.536031),
(39.916111, 116.525556),
(40.052918, 116.369476),
(40.140561, 116.262416),
(39.975395, 116.313438),
(40.134251, 116.252193),
(40.035833, 116.309445),
(40.206013, 116.223627),
(40.037177, 116.370581),
(40.076948, 116.302963),
(39.921471, 116.399411),
(39.865821, 116.488651),
(40.112621, 116.289151),
(39.837781, 116.389081),
(40.038109, 116.323645),
(39.993301, 116.385501),
(40.072862, 116.403417),
(40.118531, 116.267087),
(40.034261, 116.358151),
(39.912101, 116.354001),
(40.145939, 116.252157),
(40.081833, 116.294194),
(40.050472, 116.321388),
(40.045489, 116.345215),
(39.983471, 116.308391),
(40.043501, 116.298251),
(40.125517, 116.261944),
(40.108971, 116.268313),
(40.213869, 116.234626),
(40.212898, 116.228058),
(39.981928, 116.308731),
(39.991361, 116.309306),
(40.112222, 116.285388),
(40.369497, 115.888276),
(39.979381, 116.308711),
(39.884931, 116.672281),
(39.990311, 116.351102),
(40.212647, 116.251881),
(40.036487, 116.340494),
(39.787638, 116.493917),
(40.023842, 116.331927),
(40.033701, 116.330251),
(40.039607, 116.316384),
(40.034031, 116.319871),
(39.994141, 116.405721),
(40.040439, 116.349094),
(39.914801, 116.469981),
(40.154301, 116.250241),
(40.034579, 116.288291),
(40.103275, 116.284444),
(40.083291, 116.322045),
(39.980345, 116.370601),
(39.925291, 116.472391),
(39.895711, 116.397971),
(40.031751, 116.368056),
(40.087389, 116.300231),
(40.409112, 115.939973),
(39.983118, 116.310884),
(40.156415, 116.244773),
(40.150118, 116.264351),
(39.915401, 116.556331),
(40.218981, 116.230971),
(40.084444, 116.331417),
(40.461806, 115.968917),
(40.008171, 116.328254),
(39.857296, 116.078922),
(40.055791, 116.324361),
(39.984811, 116.315931),
(39.790501, 116.483001),
(40.209889, 116.228222),
(40.220667, 116.239556),
(40.027911, 116.335911),
(40.462333, 115.980861),
(40.095381, 116.283131),
(40.064501, 116.279917),
(39.886583, 116.673001),
(39.907611, 116.572151),
(40.210773, 116.239262),
(40.211233, 116.239117),
(40.212442, 116.246563),
(39.912491, 116.533221),
(40.071389, 116.323528),
(39.983031, 116.298521),
(40.222097, 116.220571),
(39.981862, 116.317841),
(39.918461, 116.523139),
(39.977147, 116.304633),
(39.983056, 116.309167),
(39.983333, 116.309944),
(40.016147, 116.296344),
(40.120147, 116.254641),
(40.125971, 116.252163),
(40.216801, 116.203957),
(40.220905, 116.213595),
(40.041002, 116.315417),
(40.170417, 116.269783),
(40.504195, 116.054002),
(40.235611, 116.124289),
(39.938245, 116.570841),
(40.065611, 116.322079),
(40.197801, 116.222841),
(40.017402, 116.305637),
(40.131848, 116.266921),
(39.920349, 116.327869),
(39.988501, 116.318872),
(39.983061, 116.319341),
(40.145014, 116.293074),
(40.028271, 116.341911),
(40.152972, 116.298361),
(40.183412, 116.232075),
(39.916032, 116.529796),
(39.983334, 116.309945),
(39.916191, 116.528441),
(39.952309, 116.402426),
(40.463311, 115.970806),
(40.043761, 116.285851),
(40.047312, 116.333848),
(40.098774, 116.302953),
(40.122783, 116.319914),
(40.087491, 116.324951),
(40.081066, 116.342998),
(40.106016, 116.276689),
(40.062711, 116.295361),
(40.032181, 116.340731),
(39.977181, 116.308881),
(40.041361, 116.373921),
(39.980015, 116.311137),
(40.052505, 116.173674),
(39.790141, 116.482981),
(40.030933, 116.332812),
(40.187917, 117.153667),
(40.006201, 116.279001),
(40.019626, 116.456913),
(40.214867, 116.247008),
(40.168968, 116.311797),
(39.892091, 116.392511),
(39.991104, 116.343872),
(40.096239, 116.272141),
(40.008801, 116.267881),
(40.077062, 116.325645),
(39.887901, 116.331001),
(39.787601, 116.493901),
(39.948201, 116.542001),
(39.977189, 116.305564),
(40.051301, 116.311001),
(39.898054, 116.219284),
(39.978871, 116.306551),
(40.034978, 116.306693),
(39.792501, 116.486851),
(40.050981, 116.320021),
(39.763371011, 116.322339649),
(39.913461, 116.430731),
(39.977501, 116.292001),
(39.917275, 116.524194),
(40.043889, 116.473056),
(39.909691, 116.591661),
(40.066778, 116.342167),
(39.990531, 116.363311),
(40.010696, 116.338602),
(40.039091, 116.305781),
(40.069228, 116.299637),
(39.947101, 116.309841),
(40.464911, 115.992917),
(40.034231, 116.327471),
(39.975028, 116.311556),
(39.923121, 116.515441),
(39.977237, 116.308991),
(40.223035, 116.276701),
(40.020209, 116.302722),
(40.015131, 116.425051),
(39.921181, 116.494821),
(40.215364, 116.240961),
(39.905001, 116.342225),
(39.920889, 116.557278),
(39.978994, 116.329721),
(40.183415, 116.161574),
(40.136843, 116.314051),
(39.985921, 116.304434),
(40.039222, 116.339751),
(39.911641, 116.547851),
(40.146371, 116.273861),
(39.592431, 116.183104),
(40.000241, 116.352881),
(40.145755, 116.302861),
(39.976213, 116.573121),
(40.158691, 116.266905),
(40.089172, 116.302284),
(40.022108, 116.307999),
(39.990301, 116.339161),
(39.991541, 116.319551),
(40.209278, 116.216359),
(40.216783, 116.256904),
(40.008061, 116.448869),
(40.099121, 116.338071),
(40.068287, 116.333102),
(40.057821, 116.340871),
(40.227885, 116.146042),
(40.447056, 115.968972),
(40.044503, 116.334486),
(39.905408, 116.445833),
(40.058111, 116.330667),
(40.055121, 116.307781),
(39.912917, 116.518306),
(40.066421, 116.341311),
(40.098981, 116.285883),
(39.886901, 116.675301),
(39.989352, 116.356064),
(39.994901, 116.293001),
(40.167991, 116.314012),
(39.983211, 116.306881),
(40.166291, 116.343241),
(39.918681, 116.507301),
(39.963305, 116.335277),
(40.183997, 116.191357),
(39.914001, 116.499361),
(40.213888, 116.221534),
(39.926101, 116.528501),
(40.141792, 116.258313),
(39.981691, 116.332721)]