如何解决KivyMD 和 Folium
大家好,我开始使用 kivymd 创建一个移动应用程序,允许用户绘制多边形并将它们提交到数据库。
我刚刚开始编码,我还没有掌握模块、API 和框架的概念,我想知道我是否可以在 kivyMD 屏幕中实现一个大叶地图。
我有这个
来自大叶的地图
import folium
from folium import plugins
from folium import raster_layers
class MyMap():
def __init__(self):
pass
def drawmap(self):
# map
map_draw = folium.Map(location=[37.983810,23.727539],tiles='OpenStreetMap',max_zoom=int(30))
return map_draw
'''
# LayerMenu
layers = folium.FeatureGroup(name="Layers").add_to(map_draw)
# draw tools
# export=True exports the drawn shapes as a geojson file
draw = plugins.Draw(export=True).add_to(map_draw)
# add draw tools to map`
draw.add_to(map_draw)
# Creates a Web Map Service (WMS) layer.
layers.add_child(
raster_layers.WmsTileLayer(url="http://gis.ktimanet.gr/wms/wmsopen/wmsserver.aspx",layers="WMS"))
folium.LayerControl().add_to(map_draw)
map_draw.save("index.html")
return "index.html"'''
和这个应用环境
from kivy.lang import Builder
from kivy.uix.Boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivymd.app import MDApp
from kivy.garden.mapview import MapView
from maps import MyMap
k = MapView()
KV = '''
#:include kivy.garden.mapview.MapView
#:include kivy.uix.Boxlayout.BoxLayout(**kwargs)
#:include kivy.garden.mapview.geojson.GeoJsonMapLayer
#:include kivy.garden.mapview.MapLayer
#:include maps.MyMap.drawmap
<ContentNavigationDrawer>:
ScrollView:
MDList:
OneLineListItem:
text: "Screen 1"
on_press:
root.nav_drawer.set_state("close")
root.screen_manager.current = "scr 1"
OneLineListItem:
text: "Screen 2"
on_press:
root.nav_drawer.set_state("close")
root.screen_manager.current = "scr 2"
Screen:
MDToolbar:
id: toolbar
pos_hint: {"top": 1}
elevation: 10
title: "MDNavigationDrawer"
left_action_items: [["menu",lambda x: nav_drawer.set_state("open")]]
NavigationLayout:
x: toolbar.height
ScreenManager:
id: screen_manager
Screen:
name: "scr 1"
BoxLayout:
orientation: 'vertical'
size_hint_x: 1
size_hint_y: 0.89999
MyMap
Screen:
name: "scr 2"
MDLabel:
text: "Screen 2"
halign: "center"
MDNavigationDrawer:
id: nav_drawer
ContentNavigationDrawer:
screen_manager: screen_manager
nav_drawer: nav_drawer
'''
class ContentNavigationDrawer(BoxLayout):
screen_manager = Objectproperty()
nav_drawer = Objectproperty()
class TestNavigationDrawer(MDApp):
def build(self):
return Builder.load_string(KV)
TestNavigationDrawer().run()
[1]: https://i.stack.imgur.com/3rFRU.png
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。