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>

我该怎么做,如何指定纬度和经度的半径?

4

3 回答 3

0

我猜你正在寻找一个公式来计算两个纬度+经度坐标之间的距离?检查这个问题:Working with latitude/longitude values in Java

于 2012-09-28T12:44:58.523 回答
0

如果您想查找两个不同位置之间的距离(即用户位置和您的 shp 位置之一),您可以使用以下代码:

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 Km 进行比较并显示通知

于 2012-09-28T13:16:17.970 回答
0

Android为此有一个特定的功能:

Android 接近警报教程 addProximityAlert

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

于 2012-09-29T18:58:38.677 回答