0

我正在一个应用程序中使用收藏站点列表填充 MapView。现在,我在 MapView 中有所有标记,但我想在这个标记上做一个事件,当我按下其中一个时,启动另一个活动。

我尝试做一个获取 X 和 Y 坐标的 onTouch 事件,然后,如果这个 GeoPoint 是,请在数据库中检查,但是不可能检查'因为地理点非常精确,有很多小数,而且很难得到和我在数据库中的一样。

问题是:有没有办法在这个标记中做一个事件???

4

1 回答 1

1

对于“最喜欢的站点列表”,假设站点数量适中,ItemizedOverlay是使用的典型覆盖。如果您正在使用它,只需覆盖onTap()提供用户点击的特定标记的索引的 。

如果您使用Overlay而不是ItemizedOverlay,则可以使用以下内容在数据库中找到最接近用户点击坐标的项目:

SELECT MIN(ABS(Latitude - ?) + ABS(Longitude - ?)), _ID FROM Sites GROUP BY _ID LIMIT 1;

您将纬度和经度作为两个元素String[]提供给rawQuery()并根据需要调整列名。请注意,我没有亲自尝试过这个查询,所以我转换到 SQLite 时可能会出现问题。

(源自T-SQL:在地图网格上查找对象的最近位置

于 2012-05-28T11:22:44.710 回答