私は誰かがこれを手伝ってくれることを願っています。私は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'で新しいページを開くだけで、どの場所がクリックされたのかが分かります。私はこれを行うことについてオンラインで多くを読んだが、何も働いていない。この仕事をすることに私を近づけることができるどんな情報でも、それは非常に感謝しています。