You should not use onTouchEvent for this, instead override onTap(int
idx) in your Overlay.

On Nov 4, 1:04 pm, Vishal <[email protected]> wrote:
> Hello there,
>
> I have a problem that I am not able to show the name of the marker on
> google map.
> Actually I am making the application in which we show multiple marker,
> but my problem is that I have to show place name also at that marker
> point.
> To achieve this I did coding in such a way
> public class HelloItemizedOverLay extends ItemizedOverlay {
>
> private ArrayList<OverlayItem> overlayItem = new ArrayList<OverlayItem>
> ();
>
> public HelloItemizedOverLay(Drawable defaultMarker) {
>         super(boundCenterBottom(defaultMarker));
>     }
>
>     @Override
>     protected OverlayItem createItem(int i) {
>         return overlayItem.get(i);
>     }
>
>     @Override
>     public int size() {
>         return overlayItem.size();
>     }
>
>     public void addOverlay(OverlayItem overlay) {
>         overlayItem.add(overlay);
>         populate();
>     }
>
> }
>
> and in this I add multiple OverlayItem by this way
>
> boolean flag = false;
>         for (int i = 0; i < size; i++) {
>             if (null == place)
>                 continue;
>             double lat = Double.parseDouble(xx.getLatitude());
>             double lon = Double.parseDouble(xx.getLongitude());
>             GeoPoint point = new GeoPoint(((int) (lat * 1E6)), ((int)
> (lon * 1E6)));
>             if (!flag) {
>                 controller.setCenter(point);
>                 flag = true;
>             }
>             String name = "Hello" + i;
>             OverlayItem overlayItem = new OverlayItem(point, name,
> name);
>             itemizedOverlay.addOverlay(overlayItem);
>
>             mOverlays.add(itemizedOverlay);
>         }
>
> But it is not showing the marker
> Then I tried using motion event in the class HelloItemizedOverLay
>
> @Override
>     public boolean onTouchEvent(MotionEvent event, MapView mapView) {
>         if (event.getAction() == MotionEvent.ACTION_UP) {
>             GeoPoint p = mapView.getProjection().fromPixels((int)
> event.getX(), (int) event.getY());
>             Iterator<OverlayItem> iterator = overlayItem.iterator();
>             if (Logger.ENABLE_CONSOLE_DEBUG) {
>                 Logger.printMessage(this.getClass().getSimpleName() +
> "--OnTouchEvent() -- Point found " + p.getLatitudeE6() + "  " +
> p.getLongitudeE6(), Logger.INFO);
>             }
>             while (iterator.hasNext()) {
>                 OverlayItem item = iterator.next();
>                 GeoPoint gp = item.getPoint();
>                 if (gp.getLatitudeE6() == p.getLatitudeE6() &&
> gp.getLongitudeE6() == p.getLongitudeE6()) {
>                     Toast.makeText(context, item.getTitle(),
> Toast.LENGTH_SHORT).show();
>                 }
>             }
>
>         }
>         return false;
>     }
>
> But looks like that toast will only be shown when user click on the
> exact pixel.
>
> What I want that when user touch the marker drawable toast should be
> shown.
> Can anyone help me to do this.
>
> Vishal

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to