我有一个脚本可以通过folium在地图上绘制多个点。有没有办法改变标记和颜色的形状?
是否可以通过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')
答案 0 :(得分:1)
您可以尝试这样的事情:
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 :(得分: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
答案 2 :(得分: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')