将查询GeoPoint解析为Google Maps Android Studio上的标记

时间:2016-09-02 15:42:23

标签: android google-maps parse-platform google-maps-markers geopoints

我是一名机器人初学者,无法在任何地方找到答案。

我想在地图上显示距离地图中心25公里的标记。 我无法找到找到地图中心位置的方法,然后显示距离它25公里的标记。

地理位置在Cars.class的Parse.com上,位于"位置"。 到目前为止,事件代码显示标记不起作用,它得到结果:

{"objectId": "[...]","location": {"__type":"GeoPoint","latitude": [...],"longitude": [...] },"createdAt":"[...]","updatedAt": "[...]"}

它崩溃并给我错误:

  

com.parse.ParseObject无法强制转换为com.company.test.Cars。

感谢您的帮助!

    ParseQuery<Cars> query = ParseQuery.getQuery("Cars");
    query.selectKeys(Collections.singletonList("location"));   
    query.findInBackground(new FindCallback<Cars>(){

        @Override
        public void done(List<Cars> list, ParseException e) {
            if (e != null) {
                return;
            }
            ParseGeoPoint geoPoint;
           for(int i =0;i<list.size();i++){
               geoPoint = list.get(i).getParseGeoPoint("location");
               mMap.addMarker(new MarkerOptions().position(new LatLng(geoPoint.getLatitude(), geoPoint.getLongitude())));

1 个答案:

答案 0 :(得分:0)

好的,有两个选项可以实现您的目标。

一个有点复杂但非常强大:everything is described here

应用此选项后,它将是:

ParseQuery<Cars> query = ParseQuery.getQuery(Cars.class);

另一个对我来说听起来不那么复杂:

  1. 创建Parse.Query<Parse.Object>以获取Parse.Object而不是Cars
  2. done方法中,遍历所有结果
  3. 创建一个Car的构造函数,它将Parse.Object作为参数
  4. 通过刚刚创建的构造函数将每个Parse.Object从结果转换为Car对象。
  5. 第二种选择可能有点复杂,但更灵活。