如何自定义 mapview 的地图标记弹出窗口,如下图所示?



MapMarker弹出窗口

我试图自定义一个MapMarker弹出而不使用常规的"源"属性在kivy MapView类。我尝试过用按钮效果和抬高效果创建圆圈,但是我似乎无法移除红色圆圈后面的白框背景,并且在圆圈中添加文字也很困难。任何想法都会很有帮助。我已经包含了我的简单测试代码示例。

下面是我的py代码:
from kivymd.app import MDApp
from kivymd.uix.floatlayout import MDFloatLayout
from kivymd.uix.behaviors import (CircularRippleBehavior, FakeCircularElevationBehavior, BackgroundColorBehavior)
from kivy.garden.mapview import MapMarkerPopup, MapMarker
from kivy.lang import Builder
from kivy.uix.behaviors import ButtonBehavior

class RoundedMarker(MDFloatLayout,
MapMarkerPopup,
CircularRippleBehavior,
FakeCircularElevationBehavior,
BackgroundColorBehavior,
ButtonBehavior):
pass
class TestApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "BlueGray"
return Builder.load_file('test.kv')
TestApp().run()

和我的kv代码:

<RoundedMarker>:
size_hint: None,None
size: "20dp","20dp"
radius: self.size[0] / 2
md_bg_color: 1, 0, 0, 1
MapView:
lat: 10
lon: 10
zoom: 5
RoundedMarker:
lat: 12
lon: 12
elevation: 5

我也没有找到一个很好的解决方案来删除"source"论点。

我刚刚创建了一个透明像素的png图像。透明像素是通过add.mapmarkerpopup的源参数加载的。由于图像现在是透明的,您可以添加任何窗体。与画布。图像不再干扰。

最新更新