我正在一个应用程序中使用收藏站点列表填充 MapView。现在,我在 MapView 中有所有标记,但我想在这个标记上做一个事件,当我按下其中一个时,启动另一个活动。
我尝试做一个获取 X 和 Y 坐标的 onTouch 事件,然后,如果这个 GeoPoint 是,请在数据库中检查,但是不可能检查'因为地理点非常精确,有很多小数,而且很难得到和我在数据库中的一样。
问题是:有没有办法在这个标记中做一个事件???
我正在一个应用程序中使用收藏站点列表填充 MapView。现在,我在 MapView 中有所有标记,但我想在这个标记上做一个事件,当我按下其中一个时,启动另一个活动。
我尝试做一个获取 X 和 Y 坐标的 onTouch 事件,然后,如果这个 GeoPoint 是,请在数据库中检查,但是不可能检查'因为地理点非常精确,有很多小数,而且很难得到和我在数据库中的一样。
问题是:有没有办法在这个标记中做一个事件???
对于“最喜欢的站点列表”,假设站点数量适中,ItemizedOverlay
是使用的典型覆盖。如果您正在使用它,只需覆盖onTap()
提供用户点击的特定标记的索引的 。
如果您使用Overlay
而不是ItemizedOverlay
,则可以使用以下内容在数据库中找到最接近用户点击坐标的项目:
SELECT MIN(ABS(Latitude - ?) + ABS(Longitude - ?)), _ID FROM Sites GROUP BY _ID LIMIT 1;
您将纬度和经度作为两个元素String[]
提供给rawQuery()
并根据需要调整列名。请注意,我没有亲自尝试过这个查询,所以我转换到 SQLite 时可能会出现问题。