用 folium 绘制标记有限制吗?
Is there a limit to plotting markers with folium?
我正在策划美国空军在朝鲜 War 期间对朝鲜执行的任务 运行。
以下是2800个地块的地图
我总共有大约 7500 个地块,但每当我尝试绘制超过 2800 个地块时,就会呈现空白地图。我正在笔记本电脑上渲染。如果我使用桌面,它会渲染吗?或者这是叶子的限制?
我并没有推测这是数据的问题。我将分享坐标数据以防有人想探索它:link 到 public excel sheet.
正如@Bob Haffner 建议的那样,您可以使用 Folium 库中的 FastMarkerCluster。
这是我的代码,在我的文件中有 ~500K 点。
import pandas as pd
import json
from folium.plugins import FastMarkerCluster
rome_lat, rome_lng = 41.9028, 12.4964
with open("file_name.json", 'r') as f:
# create a new DataFrame
samples = pd.DataFrame(json.loads(f.read()))
# init the folium map object
my_map = folium.Map(location=[rome_lat, rome_lng], zoom_start=5)
# add all the point from the file to the map object using FastMarkerCluster
my_map.add_child(FastMarkerCluster(samples[['latitude', 'longitude']].values.tolist()))
# save the map
my_map.save("save_file.html")
此代码需要约 10 毫秒来渲染地图。
有关更多详细信息示例,请遵循此 link:
FastMarkerCluster example
希望对您有所帮助。
另一种选择是我们可以在图层上添加特定数量的标记(比如 3000 个标记),使用 folium.map.FeatureGroup()
函数将在单个图层上添加 3000 个标记,然后我们可以添加该图层使用 add_child()
函数添加到地图,这减少了地图上的层数。我得到了 20,000 个标记和 3000 行字符串的结果。并且能够在 40-45 秒内加载。
我正在策划美国空军在朝鲜 War 期间对朝鲜执行的任务 运行。
以下是2800个地块的地图
我总共有大约 7500 个地块,但每当我尝试绘制超过 2800 个地块时,就会呈现空白地图。我正在笔记本电脑上渲染。如果我使用桌面,它会渲染吗?或者这是叶子的限制?
我并没有推测这是数据的问题。我将分享坐标数据以防有人想探索它:link 到 public excel sheet.
正如@Bob Haffner 建议的那样,您可以使用 Folium 库中的 FastMarkerCluster。 这是我的代码,在我的文件中有 ~500K 点。
import pandas as pd
import json
from folium.plugins import FastMarkerCluster
rome_lat, rome_lng = 41.9028, 12.4964
with open("file_name.json", 'r') as f:
# create a new DataFrame
samples = pd.DataFrame(json.loads(f.read()))
# init the folium map object
my_map = folium.Map(location=[rome_lat, rome_lng], zoom_start=5)
# add all the point from the file to the map object using FastMarkerCluster
my_map.add_child(FastMarkerCluster(samples[['latitude', 'longitude']].values.tolist()))
# save the map
my_map.save("save_file.html")
此代码需要约 10 毫秒来渲染地图。
有关更多详细信息示例,请遵循此 link: FastMarkerCluster example
希望对您有所帮助。
另一种选择是我们可以在图层上添加特定数量的标记(比如 3000 个标记),使用 folium.map.FeatureGroup()
函数将在单个图层上添加 3000 个标记,然后我们可以添加该图层使用 add_child()
函数添加到地图,这减少了地图上的层数。我得到了 20,000 个标记和 3000 行字符串的结果。并且能够在 40-45 秒内加载。