Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android google map版本2中添加的大量标记无法执行异步后台任务的进度更新_Android_Google Maps_Google Maps Api 2 - Fatal编程技术网

android google map版本2中添加的大量标记无法执行异步后台任务的进度更新

android google map版本2中添加的大量标记无法执行异步后台任务的进度更新,android,google-maps,google-maps-api-2,Android,Google Maps,Google Maps Api 2,在上面的代码中,我的要求是在填充完背景方法中提到的数组后打开映射,然后每当我拖动映射时就会添加标记。填充完数组后,我想使用UI组件,并且标记添加将在进度更新中的背景下完成。如果没有android集群,我如何满足我的要求?大量od标记是您可以使用android标记群集的问题。这是一个非常好的库。02-02 03:08:59.339:E/dalvikvm4422:找不到类“com.google.maps.android.utils.demo.ClusteringDemoActivity”,从方法co

在上面的代码中,我的要求是在填充完背景方法中提到的数组后打开映射,然后每当我拖动映射时就会添加标记。填充完数组后,我想使用UI组件,并且标记添加将在进度更新中的背景下完成。如果没有android集群,我如何满足我的要求?

大量od标记是您可以使用android标记群集的问题。这是一个非常好的库。02-02 03:08:59.339:E/dalvikvm4422:找不到类“com.google.maps.android.utils.demo.ClusteringDemoActivity”,从方法com.google.maps.android.utils.demo.MainActivity.onCreate中引用,在希望在android中运行map clustring demo时出现上述错误
    public class PositionUpdate1  extends AsyncTask<Void, Void, Location> 
 {

        @Override
        protected void onPreExecute() {

              super.onPreExecute();
              dialog = new ProgressDialog(NearByAttractions2.this);
              dialog.setMessage("Loading Places........");
              dialog.setCancelable(false);
              dialog.show();
        }

        @Override
        protected Location doInBackground(Void...arg0) 
        {

            try
            {
                Thread.sleep(5000);
            }
            catch(InterruptedException e)
            {

                e.printStackTrace();
            }

             runOnUiThread(new Thread()
             {
                    public void run() 
                    {
                         String xml = ParseXMLMethods2.getXML();
                        Document doc = ParseXMLMethods2.XMLfromString(xml);
                        NodeList children = doc.getElementsByTagName(KEY_ITEM);
                        for (int i = 0; i < children.getLength(); i++) 
                        {                           
                          Element e = (Element)children.item(i);

                          alist.add(ParseXMLMethods2.getValue(e,KEY_TITLE));
                        }

                          arr = new String[alist.size()];
                          alist.toArray(arr);

                         int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());

                      // Showing status
                      if(status!=ConnectionResult.SUCCESS){ // Google Play Services are not available

                          int requestCode = 10;
                          Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, NearByAttractions2.this, requestCode);
                          dialog.show();
                      }else 
                      { 

                          LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

                          // Creating a criteria object to retrieve provider
                          Criteria criteria = new Criteria();

                          // Getting the name of the best provider
                          provider = locationManager.getBestProvider(criteria, true);

                          locationManager.requestLocationUpdates(provider, 20000, 0, NearByAttractions2.this);
                          map.setMyLocationEnabled(true);
                      }





                    }
                });

            publishProgress();
            return null;
        }

        @Override
        protected void onPostExecute(Location loc) 
        {
            dialog.dismiss();

            map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() 
                {
                    @Override
                    public void onInfoWindowClick(Marker marker) 
                    {
                       Intent intent = new Intent(NearByAttractions2.this,Activity2.class);
                       intent.putExtra("Clubname", marker.getTitle());
                       intent.putExtra("Username", Username);
                       intent.putExtra("ID2", UserID);
                       startActivity(intent);
                    }
                });
            {

        }

    }

        @Override
         protected void onProgressUpdate(Void... values) 
         {
            dialog.dismiss();

             geoCoder = new Geocoder(NearByAttractions2.this, Locale.getDefault());  
             try 
             {

                 for(int i = 0;i<arr.length;i++)

                 {
                    addresses = geoCoder.getFromLocationName(arr[i], 1);

                   if(addresses.toString().contains("Address"))
                   {

                     Address address = addresses.get(0);

                      double lat = address.getLatitude();
                      double lng = address.getLongitude();

                      combine = new LatLng(lat, lng);
                      map.addMarker(new MarkerOptions()
                     .title(arr[i])
                     .position(combine));

                   }
                  else
                  {

                  }

              }
            } catch (IOException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Toast.makeText(getApplicationContext(),"some attractions are unavailable at this moment due to slow internet connection",Toast.LENGTH_LONG).show();
            }

         }

 }