#javascript #python #web-applications #leaflet #folium
Вопрос:
Я пытаюсь создать карту с элементами управления слоями. Под слоем FeatureGroup
- hot_spot_layer — Маркеры с кластерами маркеров
- Слой маршрута — С использованием антпата для построения маршрута
После этого я пытаюсь построить лодочный маркер в конце маршрута. Без Boatmarker карта отображается так, как ожидалось, но когда я добавляю плагин boatmarker в объект базовой карты, карта ничего не отображает.
import folium
from folium import plugins
# Creating Map Object
mapObj = folium.Map(location = [1.27,103.78],tiles='OpenStreetMap',
zoom_start =4)
# Place Markers for hotspots
fg = folium.FeatureGroup(name="All Layers") #Creating feature group
mapObj.add_child(fg) #Adding feature group to based map object
# adding Hotspots as subgroup of feature group
hot_spot_layer = folium.plugins.FeatureGroupSubGroup(fg,name="Hotspots")
#Creating markercluster for hotspots
marker_cluster = folium.plugins.MarkerCluster().add_to(hot_spot_layer)
#Adding a marker
folium.Marker(location= [1.3,143.12],
icon=folium.Icon(color='brown', icon='anchor',
prefix='fa')).add_to(marker_cluster) # Adding it to the marker cluster
mapObj.add_child(hot_spot_layer) # Adding to the basemap object
#Route path
# Adding "Routes" as a subgroup of feature group
route_layer = folium.plugins.FeatureGroupSubGroup(fg,name="Routes")
corr_list = [[-4.14,116.25], [-7.28,117.78]] # Route Coordinates
plugins.AntPath(corr_list).add_to(route_layer) # Adding it to route layer
mapObj.add_child(route_layer) # Adding to the basemap object
#### Upto this point no issue ####
# Some issue when I try to add Boatmarker
# If I execute the below commented line my map is not rendering with markers amp; route path
# Adding to the basemap object , please uncomment to see the map is not rendering
#folium.plugins.BoatMarker(location=(-7.14,116.25),heading=-20).add_to(mapObj)
folium.LayerControl(collapsed=True).add_to(mapObj) #Assigning layer control
mapObj.save('test.html') # html generation
Без Лодочного маркера — Никаких проблем
С помощью Boatmarker карта не отображается
Я очень новичок в фолиуме, поэтому знаю, что мой код может быть немного ржавым.
Комментарии:
1. Я тоже новичок в фолиуме. Я изучал это уже несколько часов и не знаю, почему на маркере лодок ничего не отображается.
2. Спасибо, что проверили это. Я предполагаю, что возникла какая-то проблема с управлением слоем/добавлением объектов-маркеров в слои объектов. Я не могу решить эту проблему. Я использовал маркер круга вместо маркера лодки, и это работает.
3. Да, я тоже подозревал что-то подобное. Очень жаль, что это не работает «из коробки». Может быть, какой-нибудь эксперт по фолиуму или Python мог бы просмотреть скрипт Boatmarker и объяснить, где все идет не так. Возможно, это даже можно было бы внести свой вклад в лучшую реализацию плагина. Надеюсь, кто-нибудь придет сюда на помощь: -)