在原始查询ORM-lite中调用数学函数ACOS,SIN,COS

时间:2016-04-12 13:36:39

标签: android sqlite ormlite

我想在我的地图上搜索附近的经销商。我正在进行本机查询搜索,但遇到错误: SQLiteException:没有这样的函数:ACOS(代码1)并最终在我的地图上没有显示分发符。我的代码如下。有人能帮助我吗?

try{
            Dao<Distribuidor, Integer> dao = getDatabase(context).getDao(Distribuidor.class);
            String query=
                    "SELECT * FROM Distribuidor" +
                            " WHERE habilitado = 1" +
                            " AND ((ACOS(SIN(" + lat + " * PI() / 180) * SIN(latitude * PI() / 180) + COS(" +
                            lat + " * PI() / 180) * COS(o.lat * PI() / 180) * COS((" + lng +
                    " - o.lng) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) <= " + max;


            GenericRawResults<Distribuidor> rawResults = dao.queryRaw(query, dao.getRawRowMapper());
            List<Distribuidor> distribuidores = rawResults.getResults();
            rawResults.close();

            return distribuidores;
        }catch (Exception e){
            e.printStackTrace();
        }

0 个答案:

没有答案