Ich schaffte es, die Karte auf dem Bildschirm angezeigt zu bekommen. Jetzt bewegt sich der Benutzer auf der Karte und drückt darauf. Nach dem Drücken auf einen Punkt muss ich einen Push-Pin auf dem Bildschirm an der gedrückten Stelle hinzufügen. Wenn der Benutzer für einen anderen Punkt zu gehen entscheidet, wenn sie auf dem gewählten Punkt drücken, würde der erste Reißzwecke disapear und ein neues Geschäft auf dem neuen StandortMapView Hinzufügen von Pins bei Berührung
ich so tat gezogen werden:
public class LocationSelectionActivity extends MapActivity
{
GeoPoint p;
List<Overlay> listOfOverlays;
MapOverlay mapOverlay;
private MapView mapView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.locationselection);
mapView = (MapView) findViewById(R.id.mapView);
mapView.setSatellite(false);
final MapController mc = mapView.getController();
String coordinates[] = {"46.540606", "22.454542"};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
mc.animateTo(p);
mc.setZoom(10);
ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
public void onClick(View v) {
mc.zoomIn();
}
});
zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
public void onClick(View v) {
mc.zoomOut();
}
});
//---Add a location marker---
mapOverlay = new MapOverlay();
listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
}
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.map_flag);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-48, null);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6()/1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
}
return false;
}
}
Diese zeichnet den ersten Pin (die Ressource map_flag). Wenn ich auf die Karte klicke, bekomme ich den Toast mit den Koordinaten ... Alles was noch zu tun ist, ist ein neuer Klick, lösche den alten Pin und füge einen neuen hinzu.
Aber wie geht das?
Hallo, ich möchte bin ein Punkt, wenn ich den Platz zu suchen, aber was ich tun möchte, ist, dass, wenn ich will, um den Ort zu ändern, die in der Nähe dieser Stelle ist durch diesen Punkt Kommissionierung, wie ich kann, was Sie tun können Hilf mir bitte –