【问题标题】:OSMDroid - custom markerOSMDroid - 自定义标记
【发布时间】:2013-07-16 08:20:51
【问题描述】:

1) 我可以使用不同的自定义标记吗?
我需要一个用于用户的位置,一个用于每个其他项目。
编辑:是的,你可以。

2) 我可以将图像添加到标记中吗?
我需要为每个标记分配一个不同的图像(我会从数据库中获得),这可能吗?我需要为此创建自定义布局吗?

3) 标记在地图上的中心位置在哪里?(~图形问题)
基本上,标记需要指向哪里?喜欢红色的居中,还是喜欢蓝色的?

【问题讨论】:

    标签: android osmdroid


    【解决方案1】:
    1. 正如您所发现的 - 是的,您可以使用自定义标记。每个 OverlayItem 都可以通过 getMarker() 返回自己的标记。

    2. 我不太确定你在问什么。如果您询问是否可以从数据库中提取图标并将其用作自定义标记,那么答案是肯定的。您可以扩展 OverlayItem 并覆盖 getMarker 以即时返回您想要的任何 Drawable。请记住,OverlayItem 和 ItemizedIconOverlay 只是起点 - 真正的功能来自使用您自己的逻辑扩展它们。另请记住,在主线程(将在其中调用 getDrawable())上执行 DB 工作不是一个好主意。

    3. 看看 OverlayItem 中的热点功能。这控制图标的哪个部分将位于该位置的中心。所以对于红色标记,热点是 BOTTOM_CENTER,而蓝色标记是 TOP_CENTER。

    【讨论】:

    • at 2) 只是为了澄清:我基本上可以将标记定义为 /drawable 中的图像,还可以定义为 xml 文件? - 在 3) 你能再检查一下你的答案吗?不确定,但红色不应该是 CENTER_CENTER(因为它的点正好在图像的中心),蓝色应该是 BOTTOM_CENTER?什么是默认热点?
    • 2.您应该能够返回任何可绘制对象 - 但是,绘制 ShapeDrawables 可能存在一些问题 - 请参阅Issue 441。 3. 我假设两条黑线相交的地方是“中心点”。所以红色标记的底部中心是“捕捉”到该中心点的部分,蓝色标记的顶部中心是“捕捉”到中心点的部分。
    • 啊,这边。我反过来理解它,但有道理。非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    相关资源
    最近更新 更多