2012-10-12 21 views
1

我正在製作一個程序,我必須解析xml數據到谷歌地圖,我知道如何使用xml解析器和谷歌地圖的位知識,在這裏我需要獲取經度,緯度,名稱,並從XML文件地址,需要在谷歌地圖使用標記來顯示,請別人幫我做這個,我把我下面的XML數據: -解析XML數據到谷歌地圖android

<map> 
     <area> 
     <longitude>-97.762914</longitude> 
     <latitude>30.282165</latitude> 
     <name>Place Name 1</name> 
     <address>Place Address 1</address> 
     </area> 
     <area> 
     <longitude>-97.762914</longitude> 
     <latitude>31.282165</latitude> 
     <name>Place Name 3</name> 
     <address>Place Address 3</address> 
     </area> 
     <area> 
     <longitude>-97.762914</longitude> 
     <latitude>32.282165</latitude> 
     <name>Place Name 3</name> 
     <address>Place Address 3</address> 
     </area> 
    </map> 
+0

你在哪裏得到問題? –

+0

實際上maninder,我正在尋找只有幾行提示代碼,因爲我已經使用XML解析器,但總是與列表視圖,但不是與谷歌地圖視圖,因此,我想知道如果我將使用MAPVIEW而不是ListView的是什麼將有所不同閱讀XML數據 – user1736992

+0

http://www.ibm.com/developerworks/cn/opensource/library/x-android/ –

回答

1
MapView mapView = new MapView(this, mapkey); 
MapController mc=mapView.getController(); 
GeoPoint myLocation = null; 
Drawable drawable = this.getResources().getDrawable(R.drawable.map_marker); 
myItemizedOverlay itemizedoverlay = new myItemizedOverlay(drawable, this); 
GeoPoint ppoint = new GeoPoint(platt,plngg); //platt and plngg xml parser value lattitude and Longitude 
OverlayItem poverlayitem = new  OverlayItem(ppoint,bankname,name of the place); 
itemizedoverlay.addOverlay(poverlayitem); 
mapOverlays.add(itemizedoverlay); 
myLocation = new GeoPoint(platt,plngg); 
mc.animateTo(myLocation); 
mapView.setBuiltInZoomControls(true); 
mapView.setClickable(true); 
mc.setZoom(14); 
mapView.invalidate(); 
return mapView; 

MyItemizedOverlay類 - >用於在地圖上繪製銷釘

public class myItemizedOverlay extends ItemizedOverlay<OverlayItem> { 

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
    private Context mContext; 


    public myItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 

    public myItemizedOverlay(Drawable defaultMarker, Context context) { 
      super(boundCenterBottom(defaultMarker)); 
      mContext = context; 
    } 

    public void addOverlay(OverlayItem overlay){ 
     mOverlays.add(overlay); 
     populate(); 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     return mOverlays.get(i); 
    } 

    public void removeItem(int i){ 
     mOverlays.remove(i); 
     populate(); 
    } 

    @Override 
    public int size() { 
     return mOverlays.size(); 
    } 

    @Override 
    protected boolean onTap(int i) { 
     OverlayItem item = mOverlays.get(i); 
     AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
     dialog.setTitle(item.getTitle()); 
     dialog.setMessage(item.getSnippet()); 
     dialog.show(); 
     return true; 
    } 



} 
+0

雄鹿,感謝放置的代碼,真的我得到了什麼,我正在尋找....我還可以看到一些教程基於相同的要求.. – user1736992

+0

上面的代碼放置一個引腳在精確的經度和緯度 – Bucks