2017-07-29 159 views
2

我想知道在OpenStreetMap上绘制几个坐标(150万)的直接和最快的方式是什么。在地图上直线绘制坐标(Jupyter)的最快方式是什么?

它必须能够内联显示在Jupyter笔记本

我一直在试图与Folium模块和列表理解:

import folium 
import datetime as dt 
import random as rnd 

t0 = dt.datetime.now() 

#New York City Coordinates 
NYC_COORD = [40.7128, -74.0059] 

# Sample (0.33% over 1.5 million) 
sample_coords = rnd.sample(list(coords),5000) 

# Build map 
map_nyc = folium.Map(location=NYC_COORD, zoom_start=12, 
tiles='cartodbpositron', width=640, height=480) 

# Plot coordinates using comprehension list 
[folium.CircleMarker(sample_coords[i], radius=1, 
       color='#0080bb', fill_color='#0080bb').add_to(map_nyc) 
for i in range(len(sample_coords))] 

# Display map in Jupyter 
map_nyc 

t1 = dt.datetime.now() 
print('Total time: %i seconds' % (t1 - t0).seconds) 

总时间:33秒

enter image description here

正如你可以看到,33秒。如果我们真的想要绘制1.5M的话,这是一个很长的时间。那么,有人知道是否有可能改善这个时间?

回答

2

我认为可以通过使用MarkerClusters来改善,但不是很明显。 150万是一分不少的绘制

不是一个完美的替代品,但也许你可以看看datashadermpl-scatter-density

编辑:我最近发现FastMarkerCluster这是一个非常快的选项,但不够灵活MarkerClusters 。也就是说,这可能不是150万的好选择。

相关问题