2015-11-06 5 views
2

У меня есть сценарий для построения нескольких точек на карте через folium. Есть ли способ изменить форму маркера и цвета?Изменить маркер в folium map

Не имеет значения, может ли это быть выполнено через код python или html file.

import folium 
import json 


map_osm = folium.Map(location=[37.7622, -122.4356], zoom_start=13) 

geojson = { 
    "type": "Feature", 
    "geometry": { 
     "type": "MultiPoint", 
     "coordinates": [[-122.42436302145, 37.8004143219856], [-122.42699532676599, 37.80087263276921]], 
    }, 
    "properties": {"prop0": "value0"} 
} 

map_osm.geo_json(geo_str=json.dumps(geojson)) 
map_osm.create_map(path='osm.html') 

enter image description here

ответ

0

Вы можете найти его проще создавать маркеры в индивидуальном порядке, а не создания объекта GeoJSON первым. Это было бы легко дать вам возможность их стиль, согласно примеру:

map_1 = folium.Map(location=[45.372, -121.6972], zoom_start=12,tiles='Stamen Terrain') 
map_1.simple_marker([45.3288, -121.6625], popup='Mt. Hood Meadows',marker_icon='cloud') 
+0

Я просто создал пример для этого вопроса, мои фактические данные содержат более двух тысяч точек. – Leb

0

Вы могли бы попробовать что-то вроде этого:

for i in range(0,len(data)): 
folium.Marker([data['lat'][i], data['long'][i]], 
      #Make color/style changes here 
      icon = folium.Icon(color='green'), 
     ).add_to(map_1) 
1

Ниже как я график с точками. Я на самом деле пытаюсь собрать notebook of examples (adding color, popup, etc), хотя я все еще разрабатываю кинки.

import folium 
import pandas as pd 

#create a map 
this_map = folium.Map(prefer_canvas=True) 

def plotDot(point): 
    '''input: series that contains a numeric named latitude and a numeric named longitude 
    this function creates a CircleMarker and adds it to your this_map''' 
    folium.CircleMarker(location=[point.latitude, point.longitude], 
         radius=2, 
         weight=0).add_to(this_map) 

#use df.apply(,axis=1) to "iterate" through every row in your dataframe 
data.apply(plotDot, axis = 1) 


#Set the zoom to the maximum possible 
this_map.fit_bounds(this_map.get_bounds()) 

#Save the map to an HTML file 
this_map.save('html_map_output/simple_dot_plot.html') 

this_map 

Вы также можете использовать polygon markers that this guy shows off.

Смежные вопросы