2016-05-26 1 views
0

J'essaie de créer un programme python qui génère une carte Web de folioles avec des données ponctuelles en tant que carte thermique ainsi que des données de limites comme GeoJson. Quand je lance le code ci-dessous en python je reçois des erreurs comme suit:Le programme Folium ne fonctionne pas

Traceback (most recent call last): 
    File "pollingstations.py", line 12, in <module> 
    src = json.load(open('pollstations.geojson')) 
    File "C:\Python27\ArcGIS10.3\lib\json\__init__.py", line 290, in load 
    **kw) 
    File "C:\Python27\ArcGIS10.3\lib\json\__init__.py", line 338, in loads 
    return _default_decoder.decode(s) 
    File "C:\Python27\ArcGIS10.3\lib\json\decoder.py", line 365, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "C:\Python27\ArcGIS10.3\lib\json\decoder.py", line 381, in raw_decode 
    obj, end = self.scan_once(s, idx) 
UnicodeDecodeError: 'utf8' codec can't decode byte 0xcd in position 2: invalid continuation byte 

Voici le code python.

#--------------------------------------------------------------------------- 

    ---- 
# Name: 
# Purpose: 
#------------------------------------------------------------------------------- 
import json 
import folium 

from folium.plugins import HeatMap 
from folium.plugins import MarkerCluster 

# Read the geojson file with mpesa data 
src = json.load(open('pollstations.geojson')) 

# Loop through the data structure extracting coordinates 
# "features": [ 
# { "properties": {"GPS_Latitu":-0.100300,"GPS_Longit":34.751370,"Other_Busi": null.. 

coords, popup = [], [] 
for row in src['features']: 
    popup.append(row['properties']['Polling_St'], row['properties']['Ward'], row['properties']['Constituenc'], row['properties']['County']) 
    coords.append((row['properties']['Latitude'], row['properties']['Longitude'])) 

# Create a map instance 
mp = folium.Map([0.0236, 37.9062], zoom_start = 6) 

# Create feature groups for layer controls 
kenH = folium.FeatureGroup("Heatmap") 
kenC = folium.FeatureGroup("Cluster") 
kenW = folium.FeatureGroup("Wards") 
kenA = folium.FeatureGroup("Constituency") 
kenB = folium.FeatureGroup("County") 

kenC.add_children(MarkerCluster(locations=coords, popups=popup)) 
kenH.add_children(HeatMap(coords)) 

folium.GeoJson(open("counties.geojson"), name = "County").add_to(kenB) 
folium.GeoJson(open("constituencies.geojson"), name = "Constituency").add_to(kenA) 
folium.GeoJson(open("wards.geojson"), name = "Wards").add_to(kenW) 

mp.add_children(kenB) 
mp.add_children(kenA) 
mp.add_children(kenW) 
mp.add_children(kenmC) 
mp.add_children(kenH) 

mp.add_children(folium.LayerControl()) 

mp.save("pollingstations_kenya.html") 

Répondre

0

essayer open('pollstations.geojson', encoding="utf-8") ou open('pollstations.geojson', encoding = "ISO-8859-1"), plus vérifier les noms de balises, comté ou pays?

+0

Merci. Je vais essayer. –