android google map版本2中添加的大量标记无法执行异步后台任务的进度更新
在上面的代码中,我的要求是在填充完背景方法中提到的数组后打开映射,然后每当我拖动映射时就会添加标记。填充完数组后,我想使用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时出现上述错误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
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();
}
}
}