2011-06-17 22 views
1

私は誰かがこれを手伝ってくれることを願っています。私はxmlファイルの場所にアイコンを配置する地図アプリケーションを作成しましたが、アイコンをクリック可能にしてその場所に関する情報ページを開く必要があります。クラスの下GPSLocationListenerはLocationListenerを実装現時点でAndroid:オーバーレイ画像をクリック可能にする

私はこれを持っている:このクラスの外

MapOverlay mapOverlay = new MapOverlay(); 
mapOverlay.setPointToDraw(point, "pointer", null); 

List<Overlay> listOfOverLays = mapView.getOverlays(); 
listOfOverLays.clear(); 

// doc is data from xml file     
NodeList nodes = doc.getElementsByTagName("result"); 

listOfOverLays.add(mapOverlay); 

for (int i = 0; i < nodes.getLength(); i++) {      

    Element e = (Element)nodes.item(i); 

    String locId = XMLfunctions.getValue(e, "id"); 
    String aString = XMLfunctions.getValue(e, "lat"); 
    double lat = Double.parseDouble(aString); 
    String bString = XMLfunctions.getValue(e, "long"); 
    double longi = Double.parseDouble(bString); 


    // here, 'point' and mapOverlay have already been created and added         
    GeoPoint point2 = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6)); 
    MapOverlay mapOverlay2 = new MapOverlay(); 
    mapOverlay2.setPointToDraw(point2, "place", XMLfunctions.getValue(e, "name")); 
    OverlayItem item = new OverlayItem(point2, "", ""); 
    listOfOverLays.add(mapOverlay2); 
    } 

私は場所のアイコンを作成し、場所の名前を割り当てるには、クラスを持っている:

class MapOverlay extends Overlay{ 
    private GeoPoint pointToDraw; 
    private String pointerIcon; 
    private String locName; 

    public void setPointToDraw(GeoPoint point, String pointer, String locationName){ 
     pointToDraw = point; 
     pointerIcon = pointer; 
     locName = locationName; 
    } 

    @Override 
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when){ 
     super.draw(canvas, mapView, shadow); 

     // convert point to pixels 
     Point screenPts = new Point(); 

     mapView.getProjection().toPixels(pointToDraw, screenPts); 

     // add marker 
     if(pointerIcon == "pointer"){ 

      Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pointer); 
      canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 22, null); 
     } 
     else if(pointerIcon == "bar"){ 
      Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pointer2); 
      canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 15, null); 
      Paint paint = new Paint(); 
      paint.setColor(Color.BLACK); 
      paint.setTextSize(20); 
      canvas.drawText(locName, screenPts.x, screenPts.y-20, paint); 
     } 

     return true; 
    } 
} 

私はイメージ 'pointer2'をクリック可能にし、 'locId'で新しいページを開くだけで、どの場所がクリックされたのかが分かります。私はこれを行うことについてオンラインで多くを読んだが、何も働いていない。この仕事をすることに私を近づけることができるどんな情報でも、それは非常に感謝しています。

答えて

関連する問題