Android Open Source - Mapyst Location Chooser Overlay






From Project

Back to project page Mapyst.

License

The source code is released under:

Apache License

If you think the Android project Mapyst listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2013 Mapyst//from   w  w w.j a  v  a 2  s. co  m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.mapyst.android.ui.map;

import android.graphics.PointF;
import android.os.SystemClock;
import android.view.MotionEvent;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.mapyst.android.LocationFinder;
import com.mapyst.android.MainScreen;
import com.mapyst.android.Mapyst;
import com.mapyst.route.InterpretedInfo;
import com.mapyst.route.Interpreter;
import com.mapyst.route.Waypoint2D;

public class LocationChooserOverlay extends ViewItemOverlay {

  private Mapyst app;
    private MapView mapView;

  private MainScreen mainScreen;

  private class OnLocationButtonClickListener implements LocationBalloon.LocationButtonClickListener {

    private String location;

    public OnLocationButtonClickListener(String location) {
      this.location = location;
    }

    @Override
    public void startClicked() {
      mainScreen.setStartText(location);
      clearViews();
    }

    @Override
    public void endClicked() {
      mainScreen.setEndText(location);
      clearViews();
    }

    @Override
    public void cancelClicked() {
      clearViews();
    }
  }

  public LocationChooserOverlay(Mapyst app, MainScreen mainScreen, MapView mapView, LocationFinder locFinder) {
    super(mapView);
    downPoint = new PointF();
    this.app = app;
    this.mapView = mapView;
    this.mainScreen = mainScreen;
  }

  private PointF downPoint;
  private float farthestPoint = 0;
  private long downTime;

  public void onClickEvent(float x, float y) {
    if (app.campus == null)
      return;
    if (size() > 0) {
      clearViews();
      return;
    }
        Interpreter interpreter = new Interpreter(app.campus);
    GeoPoint touchPoint = mapView.getProjection().fromPixels((int) x, (int) y);
    InterpretedInfo ii = interpreter.interpretLatLng(touchPoint.getLatitudeE6(), touchPoint.getLongitudeE6()); // loc

    Waypoint2D waypt2D = app.getRouteFinder().getWaypoint2D(ii.getResult().getPointID());

    String locName = "lat:" + (waypt2D.getPoint().lat * 1. / 1E6) + " lng:"  + (waypt2D.getPoint().lng * 1. / 1E6);

        this.addView(new LocationBalloon(app.getApplicationContext(), locName,
        new OnLocationButtonClickListener(locName)), touchPoint,
        MapView.LayoutParams.CENTER | MapView.LayoutParams.BOTTOM);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event, MapView mapView) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
      downPoint.x = event.getX();
      downPoint.y = event.getY();
      downTime = SystemClock.uptimeMillis();
      farthestPoint = 0;
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
      float dist = (float) Math.pow(Math.pow(event.getX() - downPoint.x, 2) + Math.pow(event.getY() - downPoint.y, 2), .5);
      if (dist > farthestPoint)
        farthestPoint = dist;
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
      // System.out.println(farthestPoint + " " +
      // (SystemClock.uptimeMillis() - downTime));
      if (farthestPoint < 100  && SystemClock.uptimeMillis() - downTime < 250)
        onClickEvent(event.getX(), event.getY());
    }

    // System.out.println("ARst");
    // return super.onTouchEvent(event, mapView);
    return super.onTouchEvent(event, mapView);
  }
}




Java Source Code List

com.mapyst.FileHandlerInterface.java
com.mapyst.android.AndroidFileHandler.java
com.mapyst.android.CampusLoader.java
com.mapyst.android.Compass.java
com.mapyst.android.DirectionsList.java
com.mapyst.android.Images.java
com.mapyst.android.LocationFinder.java
com.mapyst.android.MainScreen.java
com.mapyst.android.Mapyst.java
com.mapyst.android.Settings.java
com.mapyst.android.Splash.java
com.mapyst.android.asynctask.CampusLoaderTaskPrefs.java
com.mapyst.android.asynctask.CampusLoaderTask.java
com.mapyst.android.asynctask.RouteMakerTaskPrefs.java
com.mapyst.android.asynctask.RouteMakerTask.java
com.mapyst.android.ui.CenteredToastFactory.java
com.mapyst.android.ui.CompassOverlay.java
com.mapyst.android.ui.DirectionIcon.java
com.mapyst.android.ui.DirectionsListAdapter.java
com.mapyst.android.ui.DirectionsListItem.java
com.mapyst.android.ui.DrawingHelpers.java
com.mapyst.android.ui.Icon.java
com.mapyst.android.ui.LocationsAdapter.java
com.mapyst.android.ui.LocationsListView.java
com.mapyst.android.ui.RouteMapOverlay.java
com.mapyst.android.ui.SlidingScrollView.java
com.mapyst.android.ui.map.AnimatedMapZoomer.java
com.mapyst.android.ui.map.LocationBalloon.java
com.mapyst.android.ui.map.LocationChooserOverlay.java
com.mapyst.android.ui.map.MapUtils.java
com.mapyst.android.ui.map.MapViewLimiter.java
com.mapyst.android.ui.map.MapViewMover.java
com.mapyst.android.ui.map.OnMapTouchLimiterListener.java
com.mapyst.android.ui.map.PriorityMapView.java
com.mapyst.android.ui.map.ViewItemOverlay.java
com.mapyst.campus.Building.java
com.mapyst.campus.Campus.java
com.mapyst.campus.Floor.java
com.mapyst.campus.ListOfCampuses.java
com.mapyst.campus.Location_Type.java
com.mapyst.campus.Location.java
com.mapyst.route.Arc.java
com.mapyst.route.DataParser.java
com.mapyst.route.Direction.java
com.mapyst.route.DistanceCalculator.java
com.mapyst.route.GraphNode.java
com.mapyst.route.InterpretResult.java
com.mapyst.route.InterpretedInfo.java
com.mapyst.route.Interpreter.java
com.mapyst.route.LatLngPoint.java
com.mapyst.route.Prioritizable.java
com.mapyst.route.PriorityQ.java
com.mapyst.route.RouteFinder.java
com.mapyst.route.RoutePreferences.java
com.mapyst.route.Route.java
com.mapyst.route.ShortestPath.java
com.mapyst.route.Waypoint2D.java
com.mapyst.route.WaypointID.java
com.markupartist.android.widget.ActionBar.java
com.markupartist.android.widget.ScrollingTextView.java