我想在使用android点击地图上的叠加时显示基于位置的信息

时间:2011-03-18 17:27:52

标签: android

我正在设计以下应用程序。

它在地图上的不同位置显示了几个叠加层。我想要一些代码,当点击叠加时,它会显示文本信息(特定于位置)。

这不仅仅是小文本;大量数据与每个叠加相关联。

例如:显示酒店信息:班加罗尔,孟买,德里等。

2 个答案:

答案 0 :(得分:0)

使用热门的android-mapviewballoons叠加层。点击某个项目时,会显示一个信息气泡。点击泡沫也可以做其他事情。

答案 1 :(得分:0)

在您的逐项清单中,您可以覆盖onTap事件并显示一个对话框:

    @Override
protected boolean onTap(int index) {
    MyOverlayItem item = mOverlays.get(index);
    AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.setPositiveButton("OK", new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    dialog.show();
    return true;
}

这只显示覆盖项目中的片段和标题,但您可以添加其他逻辑来构建和格式化对话框消息。

编辑:

如果您在MyObject类中定义了一个带有一些键值的构造函数,

并且您已经定义了正确的

public boolean equals(Object obj) { }
在您的MyObject类中

将比较该键值,并且您有一个

LinkedList<MyObject> myObjects;

ArrayList<MyObject> myObjects;

你可以这样做:

int loc = myObjects.indexOf(new MyObject(keyValue));
if (loc != -1) {
myObject = myObjects.get(loc);
}