2011-04-30 47 views
-1

我使用gps和我在地图上添加了一些非专业的点,所以我想当我的当前位置==上层产品删除项目!问题是GPS不准确,我可能会在覆盖项目附近,但不是相同的经度和纬度。所以我想在叠加项目周围添加一个区域,说一个三角洲,所以问题是三角洲假设它是肯定的,它不能是整数或浮动它应该是什么,将它添加到我的叠加项目的郎和纬度。 预先感谢安卓gps覆盖长区域

+0

你的问题不清楚。请重新说明。并避免使用“它是紧急的” - 这是令人沮丧的。 – 2011-04-30 19:29:43

+0

我想它现在比以前清楚了迈克尔先生 谢谢 – anji 2011-04-30 19:36:56

+0

谷歌翻译? – mtmurdock 2011-04-30 20:53:06

回答

0

我对Android的GPS并不是很有经验,但在我看来,你应该能够计算从你的当前位置到覆盖物的距离,并检查它是否小于某些可接受的阈。这只是需要一点向量数学:

int XSquared = Math.pow(myPosition.x - Item.x, 2); 
int YSquared = Math.pow(myPosition.y - Item.y, 2); 
double distance = Math.sqrt(XSquared + YSquared); 

if(distance < threshold) 
    removeItem(item); 

显然,这不是什么代码将实际的样子,但我希望它会给你一些想法,你需要做什么。

+0

我所做的唯一的调整就是不要打扰Math.sqrt,测试((XSquared + YSquared)<(阈值*阈值))。将阈值平方(或将其设置为平方)比Math.sqrt快。随意编辑。 – 2011-04-30 21:27:39

+0

不 - 这是不正确的。它没有考虑到两极等长线的汇合。你需要用半正弦公式来做球面三角。一个更好的主意是使用Android方法Location.distanceBetween()。 – NickT 2011-04-30 21:31:24

+0

@ nickT所以我写loc.distanceBetween()// loc是我的当前位置,什么应该是distanceBetween(overlay项目)或什么 – anji 2011-04-30 22:40:15