Я в основном пытаюсь добавить kivy.garden.mapview в качестве виджета в приложение kivy.
Вот как я пытался это сделать.
Я также добавил класс Painter, потому что еслиЯ использую Painter как виджет, он отлично работает, а класс Map - нет.Кроме того, Map, если она протестирована как приложение с возвращаемым комментарием и обратно, отлично работает.
from kivy.app import App
# kivy.require("1.10.1")
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.garden.mapview import MapView,MapMarker
from kivy.uix.widget import Widget
from kivy.graphics import Line
xList = [3.2,4]
yList = [2.3,3]
class Map(Widget):
def on_touch_down(self, touch):
global xList
global yList
mapview = MapView(zoom=1, lat=67, lon=42)
m1 = MapMarker(lat=67, lon=42)
mapview.add_marker(m1)
print(xList)
print(yList)
for i in range(len(xList)):
m=MapMarker(lat=xList[i],lon=yList[i])
mapview.add_marker(m)
# return mapview
class Painter(Widget):
def on_touch_down(self, touch):
with self.canvas:
touch.ud["line"] = Line(points=(touch.x, touch.y))
def on_touch_move(self, touch):
touch.ud["line"].points += [touch.x, touch.y]
class MainScreen(Screen):
pass
class AnotherScreen(Screen):
pass
class ScreenManagement(ScreenManager):
pass
presentation = Builder.load_file("SimpleKivy.kv")
class MainApp(App):
def build(self):
return presentation
if __name__ == "__main__":
MainApp().run()
, а файл kivy -
#: import FadeTransition kivy.uix.screenmanager.FadeTransition
ScreenManagement:
transition: FadeTransition()
MainScreen:
AnotherScreen:
<MainScreen>:
name: "main"
Button:
on_release: app.root.current = "Map"
text: "Map"
font_size: 8
size_hint:0.05,0.05
pos_hint: {"right":1,"top":1}
color: 0,1,0,1
<AnotherScreen>:
name: "Map"
FloatLayout:
Map
Button:
color: 0,1,0,1
font_size: 8
size_hint: 0.05,0.05
text: "Graph"
on_release: app.root.current = "main"
pos_hint: {"right":1, "top":1}
Так как мне это сделать?
Могу ли я сделать это, не делая карту виджетом?
Мне нужен график, поэтому мне нужно иметь как минимум 2 экрана.