2015-11-06 102 views
2

我有一個腳本來通過葉片在地圖上繪製多個點。有沒有辦法改變標記和顏色的形狀?葉片地圖中的更改標記

它可以通過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