我正在制作一张交互式地图,以绘制全国各地的各种医疗设施。我在网上找到了可以用于该项目的合适的形状/数据库文件(以及GeoJson和CSV)。
我设法将位置显示在地图上,但是设施名称没有出现。
根据我打印的sf.fields,名称在字段8中,我可以将这些名称打印为record.record[8]
,它们将出现在控制台中。
但是,当我将弹出窗口设置为popup=record.record[8].title()
时,地图将不再加载。它在控制台内编译,不返回错误。我在这里想念什么?
这是到目前为止我得到的:
import folium
import pandas
import shapefile
import csv
with open('VA_Facilities.csv', 'r') as data_file:
csv_data = csv.reader(data_file)
myshp = open('data/va_facilities_1.shp', "rb")
mydbf = open('data/va_facilities_1.dbf', "rb")
sf = shapefile.Reader(shp=myshp, dbf=mydbf)
records = sf.shapeRecords()
# Prints the number of records, type of the shape, and fields for the
dataset
print (len(records))
print (sf.shapes()[0].shapeType)
print (sf.fields)
# Prints the first three records for verification reasons
for record in records[:3]:
print (record.record[0], record.shape.points[0], record.record[8])
map=folium.Map(location=[47.1164, -101.2996],zoom_start=4,tiles='CartoDB
positron')
for record in records:
lat, lng = (record.shape.points[0][1],record.shape.points[0][0])
folium.RegularPolygonMarker(
[lat, lng],
popup=record.record[8].title(),
fill_color='#EE1C25',
number_of_sides=5,
radius=5
).add_to(map)
map.save(outfile='Healthcare_Facilities.html')
将record.record[0]
的值更改为零将照常加载地图,但没有名称。
答案 0 :(得分:0)
弄清楚了。 Folium的最新版本依赖于原始HTML输入,因此while (iStillWantToReceiveMessages) { }
是必须添加到parse_html=True
字段中的内容,才能获得所需的结果。
感谢您的帮助!