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");

                }
            }