创建一个Google Maps V2标记数组

8

下午好。我的应用程序从 parse.com 的数据库中提取标记的数据:

public void ParseQueryMap() {
          ParseQuery query = new ParseQuery("MyObject");
          query.findInBackground(new FindCallback() {
          public void done(List<ParseObject> myObject, ParseException e) {
          if (e == null) {

                    for ( int i = 0; i < myObject.size(); i++) {

                          commGet =  myObject.get(i).getString("Comment");

                          geo1Dub = myObject.get(i).getParseGeoPoint("location").getLatitude();
                          geo2Dub = myObject.get(i).getParseGeoPoint("location").getLongitude();

                         Location aLocation = new Location("first");
                         aLocation.setLatitude(geo1Dub);
                         aLocation.setLongitude(geo2Dub);
                         Location bLocation = new Location("second");
                         bLocation.setLatitude(location.getLatitude());
                         bLocation.setLongitude(location.getLongitude());
                         int distance = (int)aLocation.distanceTo(bLocation);
                              if (distance<rad) {  // where "rad" radius display points
                                  myMap.addMarker(new MarkerOptions().position(new LatLng(geo1Dub,geo2Dub)).title(commGet)                                   .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));     

                               } else {
                               }                                                               

                         }

             } else {
                    Toast.makeText(MainActivity.this, "Error!", Toast.LENGTH_SHORT).show();
              }
          }
      });

我想创建一个标记数组来测试其大小,如果大小为零,则显示AlertDialog。也就是说,我想知道我有多少子弹。谢谢您的帮助。
更新:我想知道地图上显示了多少个标记。

问题在哪里? - Emil Adz
由于您正在为List<ParseObject> myObject的每个条目添加标记,我认为您有myObject.getSize()个标记。 - AlexVogel
myObject.getSize() 显示数据库中的记录数。我计划继续计算我与基地点之间的距离,现在我需要知道哪些标记在我附近,哪些不在。 - Сергей Светлов
我需要知道地图上标记的数量。 - Сергей Светлов
2个回答

30
// before loop:
List<Marker> markers = new ArrayList<Marker>();

// inside your loop:
Marker marker = myMap.addMarker(new MarkerOptions().position(new LatLng(geo1Dub,geo2Dub))); //...
markers.add(marker);

// after loop:
markers.size();

你如何在地图上显示它们?我只能显示数组中的最后一个。 - asus

0
List<LatLng> plots = new ArrayList();

//get your coordinates and add them to the list of plots
plots.add(new LatLng(latitude,longitude));

plots.forEach(plot->{
    MarkerOptions marker = new MarkerOptions().position(plot).title("My 
    Position");
    googleMap.addMarker(marker);
});

1
你的答案可以通过添加额外的支持信息来改进。请进行[编辑]以添加更多详细信息,例如引用或文档,以便其他人可以确认你的答案是否正确。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接