2012-09-28 57 views
0

我开始创建一个应用程序,该应用程序将显示通知,当用户距离我的店铺1公里范围内时。当我足够接近时显示通知

我有xml文件,这表明我的店纬度和日志:

<SHOPS> 
<SHOP LON="19.456865000000000000" LAT="51.765639000000000000" CITY="90-423 Łódź" STR="ul. Piotrkowska 95" PHOTO=""/> 
<SHOP LON="18.564883000000000000" LAT="54.443416000000000000" CITY="81-759 Sopot" STR="ul. Bohaterów Monte Casino 26" PHOTO=""/> 
<SHOP LON="19.455248000000000000" LAT="51.770487000000000000" CITY="90-125 Łódź" STR="ul. Narutowicza 41" PHOTO=""/> 
<SHOP LON="20.930370000000000000" LAT="52.241939000000000000" CITY="01-460 Warszawa" STR="ul. Górczewska 124" PHOTO=""/> 
</SHOPS> 

我如何能做到这一点,如何指定的纬度和长半径?

+0

[This thread](http://stackoverflow.com/q/4463907/645270)可能有助于 – keyser

回答

0

如果你想找到两个diferent位置之间(和一个你的小水电站的位置即用户的位置)的距离,您可以使用下面的代码:

Location shopLoc = new Location("");  
shopLoc.setLatitude(shopLat); //get this value from your xml file 
shopLoc.setLongitude(shopLon); //get this value from your xml file 

Location userLoc = new Location(""); 
userLoc.setLatitude(userLat); //get this value from gps or other position device 
userLoc.setLongitude(userLat); //get this value from gps or other position device 

//Finaly get the distance with 
float distance = userLoc.distanceTo(shopLocation) 

现在你可以比较与1公里的距离并显示

0

Android有此特定功能的通知:

Android Proximity Alerts Tutorial addProximityAlert

只需设置接近圆的中心(必须等于您的商店的坐标)及其半径(1公里)。 Android将完成剩下的工作。不需要计算任何东西。

+0

thx的回复,我可以添加多个点到这个方法吗? –

+0

是和不是。是的,多次使用addProximityAlert方法来设置多个接近警报点。不,addProximityAlert方法本身一次只接受一个以上的点。 – AlexBottoni