2017-10-07 5 views
1

J'ai écrit du code en python pour créer une carte Web avec des marqueurs sur toutes les villes. J'ai essayé le même code pour d'autres valeurs de latitude et de longitude, Son travail pour ces valeurs et petit no. de lat & valeurs de lon dans un fichier texte. J'ai téléchargé un fichier csv de toutes les villes avec lat & lon et essayé d'exécuter le code pour ce fichier.Mais ce ne fonctionne pas avec ce fichier. Une idée? le code est posté ci-dessous. le code fonctionne sans erreurs mais la carte n'est pas affichée sur le navigateur.A propos des cartes Web en utilisant Folium

import folium 
import pandas 
import json 
df=pandas.read_csv("simplemaps-worldcities-basic.csv") 
df1=df.to_csv("new_col1.txt", index=False,columns=["lat","lng"]) 
lat1=list(df["lat"]) 
lon1=list(df["lng"]) 
pro=list(df["province"]) 
map=folium.Map(location=[30.98,5.34],zoom_start=7,tiles="Mapbox Bright") 
fgv=folium.FeatureGroup(name="locations") 
fgp=folium.FeatureGroup(name="population") 
fgp.add_child(folium.GeoJson(data=open('world.json', 'r', encoding='utf-8-sig').read(), 
style_function=lambda x:{'fillColor':'yellow' if x['properties']['POP2005']<1000000 else 'brown'})) 

for lt,ln,el in zip(lat1,lon1,pro): 
    fgv.add_child(folium.CircleMarker(location=[lt,ln],radius=6,popup=str(el),fill_color="red",fill=True,color="orange",fill_opacity=0.7)) 
map.add_child(fgv) 
map.add_child(fgp) 
map.add_child(folium.LayerControl()) 
map.save("Map3.html") 
+0

Cela fonctionne-t-il si vous supprimez l'argument 'popup' de' CircleMarker'? –

+0

Oui son fonctionnement si ** popup ** est enlevé. Quel serait le problème? Comment le rectifier? –

+0

Le coupable est généralement un personnage dans le texte popup qu'il n'aime pas. par exemple une apostrophe. Cette question est similaire à la vôtre https://stackoverflow.com/questions/46376591/why-does-mapping-in-folium-with-over-100-circle-markers-result-in-a-blank-map?noredirect= 1 # comment79729451_46376591 –

Répondre

1

Cela est dû à l'encodage du texte dans le fichier. Peut être un caractère spécial est à l'origine du problème.