3

在一个数据库中,我存储了大约 500 条记录,每条记录都有一个纬度和一个经度。

在一个 Activity 中,我实现了一个- 方法,我需要显示距离从LocationListeneronLocationChanged侦听器接收到的位置 XX 米半径内的记录。

有没有(简单的)方法可以做到这一点,无论是在 SQL 还是 Java 中?

4

1 回答 1

4

试试这个示例代码,

rs = st.executeQuery("SELECT longititude,latitude FROM  location");
                while (rs.next()) {
                double venueLat =rs.getDouble("latitude");
                double venueLng = rs.getDouble("longititude");

                double latDistance = Math.toRadians(userLat - venueLat);
                double lngDistance = Math.toRadians(userLng - venueLng);
                double a = (Math.sin(latDistance / 2) * Math.sin(latDistance / 2)) +
                                (Math.cos(Math.toRadians(userLat))) *
                                (Math.cos(Math.toRadians(venueLat))) *
                                (Math.sin(lngDistance / 2)) *
                                (Math.sin(lngDistance / 2));

                double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

                double dist = 6371 * c;             
                if (dist<50){
                    /* Include your code here to display your records */ 
                }
于 2013-08-27T12:18:26.807 回答