使用 osmdroid 覆盖项目的自定义信息气泡

Posted

技术标签:

【中文标题】使用 osmdroid 覆盖项目的自定义信息气泡【英文标题】:Custom information bubble on tap for overlay items using osmdroid 【发布时间】:2012-03-10 20:28:27 【问题描述】:

我在我的新 android 项目中使用 osmdroid(因为我希望能够使用离线地图),但在自定义分配给叠加项目的信息气泡的外观时遇到了很多困难。

现在,我正在使用 ItemizedOverlayWithFocus 叠加层来显示我的项目;看着its code,我注意到整个东西都是在onDrawFinished 方法中绘制的,所以我尝试创建自己的自定义叠加层来覆盖这个方法,但这很难得到结果。我想得到的是这样的东西:

你们是如何在项目中获得自定义信息气泡的?

我找到了一些类来为 Google 的 MapView(如 Jeff Gilfelt's MapView Balloons)实现这样的事情,但对于 osmdroid 却没有。

【问题讨论】:

android-mapviewballoons 应该使用几乎相同的 API。您没有尝试将其移植到 osmdroid? 我现在正在尝试,但我正在调试(例如,我没有触发任何触摸事件)。但由于我看到不少项目具有漂亮的信息气泡,我认为我错过了比移植 mapviewballoons 更容易的东西。 【参考方案1】:

编辑:

此答案最适合较旧的 google map api。在谷歌地图 V2 这个 东西已经给了。

您可以从https://github.com/galex/android-mapviewballoons

获取代码

您可以从“BalloonItemizedOverlay.java”的方法中获取选中的气球,如下所示

private void hideOtherBalloons(List<Overlay> overlays) 
        for(int i=0; i<overlays.size();i++ )
            if (overlays.get(i) instanceof BalloonItemizedOverlay<?> && overlays.get(i) != this) 
                ((BalloonItemizedOverlay<?>) overlays.get(i)).hideBalloon();
            else
                BalloonOverlayView.SELECTED_BALLOON = i;
                Log.i(i+" : Baloon Open", BalloonOverlayView.SELECTED_BALLOON+"");
            
        

设置数据可以使用 BalloonOverlayView.java 文件的 setBalloonData 方法,如下:

protected void setBalloonData(Item item, ViewGroup parent) 
        if (item.getTitle() != null) 
            title.setVisibility(VISIBLE);
            title.setText(item.getTitle());
         else 
            title.setText("");
            title.setVisibility(GONE);
        
        if (item.getSnippet() != null) 
            snippet.setVisibility(VISIBLE);
            snippet.setText(item.getSnippet());
         else 
            snippet.setText("");
            snippet.setVisibility(GONE);
        

【讨论】:

【参考方案2】:

您应该查看这个新库 OSM 奖励包。应该做你想做的。

http://code.google.com/p/osmbonuspack/

【讨论】:

以上是关于使用 osmdroid 覆盖项目的自定义信息气泡的主要内容,如果未能解决你的问题,请参考以下文章

带有聊天气泡的自定义uitableview

osmdroid 覆盖以当前位置为中心

使用 css 围绕 div 自定义覆盖 - jQuery 可调整大小的自定义句柄

如何在谷歌地图中创建一个带有气泡聊天背景的自定义标记,以及像调情地图这样的图像右上角的数字?

Osmdroid 地图旋转

使用 HTML 中的自定义 CSS 覆盖 CSS 文件中的媒体查询