Java 如何在android中显示地图视图可见部分的位置pin?
这是我的Java 如何在android中显示地图视图可见部分的位置pin?,java,android,android-maps,Java,Android,Android Maps,这是我的asynctask部分,我将pin放在从XML解析的某个位置。这对于较小的位置数据集很好,但在位置数据集较大时需要很长时间 私有类映射加载器扩展异步任务{ 进程对话; ArrayList[]映射列表; @凌驾 受保护的void onPreExecute(){ mapOverlays=mapview.getOverlays(); dialog=新建ProgressDialog(MainActivity.this); dialog.show(); } @凌驾 受保护的Void doInBac
asynctask
部分,我将pin放在从XML解析的某个位置。这对于较小的位置数据集很好,但在位置数据集较大时需要很长时间
私有类映射加载器扩展异步任务{
进程对话;
ArrayList[]映射列表;
@凌驾
受保护的void onPreExecute(){
mapOverlays=mapview.getOverlays();
dialog=新建ProgressDialog(MainActivity.this);
dialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
URL URL=新URL(MainActivity.baseUrl
+“纬度=40.9192799,经度=74.0657508,距离=20”);
SAXParserFactory spf=SAXParserFactory.newInstance();
SAXParser sp=spf.newSAXParser();
XMLReader xr=sp.getXMLReader();
ParserHandler ParserHandler=新的ParserHandler();
xr.setContentHandler(parserHandler);
parse(新输入源(url.openStream());
Log.d(“Thread”,url.toString());
basicItems=parserHandler.getBasicItems();
featuredItems=parserHandler.getFeaturedItems();
restaurants=parserHandler.getRestaurants();
mapvisibleList=新建ArrayList();
mappoiList=newarraylist[2];
mappoiList[0]=新的ArrayList();
mappoiList[1]=新的ArrayList();
对于(int i=0;i for (int i = 0; i < featuredItems.size(); i++) {
POI poi = new POI(featuredItems.get(i), 1);
mappoiList[0].add(poi);
}
if (featuredItems != null) {
int featuredLength = featuredItems.size();
for (int i = 0; i < featuredLength; i++) {
FeaturedItem fItem = featuredItems.get(i);
int lat = (int) (Double
.parseDouble(fItem.getLatitude()) * 1e6);
int lon = (int) (Double.parseDouble(fItem
.getLongitude()) * 1e6);
OverlayItem oItem = new OverlayItem(new GeoPoint(lat,
lon), fItem.getName(), "Feature");
itemizedOverlay1.addOverlay(oItem);
Log.i("Map over lay", "Finished one featured");
}
}
for (int i = 0; i < basicItems.size(); i++) {
POI poi = new POI(basicItems.get(i), 0);
mappoiList[1].add(poi);
}
if (basicItems != null) {
int basicLength = basicItems.size();
for (int i = 0; i < basicLength; i++) {
BasicItem bItem = basicItems.get(i);
int lat = (int) (Double
.parseDouble(bItem.getLatitude()) * 1e6);
int lon = (int) (Double.parseDouble(bItem
.getLongitude()) * 1e6);
OverlayItem oItem = new OverlayItem(new GeoPoint(lat,
lon), bItem.getName(), "Basic");
itemizedOverlay2.addOverlay(oItem);
Log.i("Map over lay", "Finished one Basic");
}
}