python - Python - Folium 的搜索插件给出错误
问题描述
我在python中使用folium.Search()。但是,当我运行我的代码时,代码返回一个错误。如何解决这个问题?
import folium
from folium import plugins
import json
m = folium.Map(location=[39.92370048 , 32.85271525],zoom_start=12)
with open('3596566.json') as f:
data = json.load(f)
plugins.Search(data,position='topright',
search_zoom=20,
search_label='ParselNo',
geom_type="Polygon").add_to(m)
m.save('map.html')
错误是:
Traceback (most recent call last):
File "C:/Users/HP/proje/ödev2.py", line 17, in <module>
geom_type="Polygon").add_to(m)
File "C:\Python36\lib\site-packages\folium\plugins\search.py", line 100, in __init__
), 'Search can only index FeatureGroup, ' \
AssertionError: Search can only index FeatureGroup, MarkerCluster, GeoJson, and TopoJson layers at this time.
解决方案
我按如下方式修复了这个错误。我将 GeoJson 文件转移到了一个变量中。
points ={
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
32.73684,
39.85925
],
[
32.73575,
39.85949
],
[
32.73573,
39.85952
],
[
32.73574,
39.85954
],
[
32.73574,
39.85955
],
[
32.73576,
39.85969
],
[
32.73576,
39.85984
],
[
32.73582,
39.8599
],
[
32.73695,
39.86009
],
[
32.73701,
39.86006
],
[
32.73701,
39.85968
],
[
32.73701,
39.85966
],
[
32.7369,
39.85928
],
[
32.73684,
39.85925
]
]
]
},
"properties": {
"ParselNo": 1,
"Alan": "7,384.59",
"Mevkii": "",
"Nitelik": "Arsa - sağlık alanı",
"Ada": 29685,
"Il": "Ankara",
"Ilce": "Çankaya",
"Pafta": "",
"Mahalle": "Lodumu (me)"
}
}
]}
geojson_obj = folium.GeoJson(points).add_to(m)
plugins.Search(geojson_obj,position='topleft',
search_zoom=17,
search_label='ParselNo',
geom_type='Polygon').add_to(m)
推荐阅读
- javascript - 对象数组迭代以获取键和值
- c# - 尝试运行 ASP .Net Core 2.1 Web 应用程序时出现错误 502.5
- linux - 为什么 linux 上的 monodevelop 只提供“任何 cpu”平台?
- arrays - 使用数组索引中的变量输出 $Error
- c++11 - 如何在保持字符的同时加宽标准字符串?
- angular - 尝试运行 composer-rest-server 时管理员未注册错误
- swift - Swift,访问表格视图的数据
- sas - 从 EG 服务器将 ODS 文件写入本地计算机
- c++ - “std_lib_facilities.h”显示错误
- django-models - 有没有办法订购序列化程序的返回?django 休息框架