Как отобразить информацию в всплывающем окне geo json - Python - PullRequest
2 голосов
/ 08 марта 2020

У меня проблема с отображением информации во всплывающем окне, где информация извлекается из файла JSON. В настоящее время мои коды извлекают только последнюю часть информации из моего файла JSON и вставляют ее во все всплывающие окна, поэтому во всех моих всплывающих окнах отображается только эта одна часть информации. Я не могу понять, где каждый узел имеет свою уникальную информацию в своем всплывающем окне. Любая помощь приветствуется.

# reading JSON file
with open('exportBuilding.geojson') as access_json:
    read_content = json.load(access_json)

feature_access = read_content['features']

# Creating Folium Map
m = folium.Map(location=[1.400150, 103.910172], titles="Punggol", zoom_start=17)
nodeData = os.path.join('exportBuilding.geojson')
geo_json = folium.GeoJson(nodeData)

# retrieve all names and store in popup
for feature_data in feature_access:
    property_data = feature_data['properties']
    geo_json.add_child(folium.Popup(property_data['name'))

geo_json.add_to(m)

1 Ответ

2 голосов
/ 08 марта 2020

Для тех, кто сталкивается с той же проблемой, что и я, в последнем фолио есть функция «GeoJsonPopup», где она будет извлекать всю информацию, указанную вами из файла JSON, и отображать ее во всплывающем окне, решая проблему, при которой все узлы будут иметь свою собственную уникальную индивидуальную информацию.

Вместо создания от l oop до l oop всего JSON,

# reading JSON file
with open('exportBuilding.geojson') as access_json:
    read_content = json.load(access_json)

feature_access = read_content['features']

# Creating Folium Map
m = folium.Map(location=[1.400150, 103.910172], titles="Punggol", zoom_start=17)
nodeData = os.path.join('exportBuilding.geojson')

# This is retrieve all information, in this case is name from my JSON file 
# and display it into my popup, such that all nodes 
# will have its own unique information.
geo_json = folium.GeoJson(nodeData, popup=folium.GeoJsonPopup(fields=['name']))

geo_json.add_to(m)
...