Package aimax.osm.data.entities

Examples of aimax.osm.data.entities.MapNode


  /** Computes the total length of a track in kilometers. */
  public static double getTrackLengthKM(List<MapNode> nodes) {
    double result = 0.0;
    for (int i = 1; i < nodes.size(); i++) {
      MapNode n1 = nodes.get(i - 1);
      MapNode n2 = nodes.get(i);
      result += getDistKM(n1.getLat(), n1.getLon(), n2.getLat(), n2
          .getLon());
    }
    return result;
  }
View Full Code Here


   * Returns the map node which is the nearest with respect to the specified
   * view coordinates among the currently displayed nodes.
   */
  public MapNode getNextNode(int x, int y) {
    Position pos = new Position(transformer.lat(y), transformer.lon(x));
    MapNode nextNode = null;
    MapNode tmp = null;
    for (int i = 0; i < 2; i++) {
      List<MapWay> ways = (i == 0) ? areaBuffer : wayBuffer;
      for (MapWay way : ways) {
        tmp = pos.selectNearest(way.getNodes(), null);
        if (nextNode == null
            || pos.getDistKM(tmp) < pos.getDistKM(nextNode)) {
          nextNode = tmp;
        }
      }
    }
    for (MapEntity node : nodeBuffer) {
      if (node instanceof MapNode) {
        tmp = (MapNode) node;
        if (tmp != null && tmp.getAttributeValue("marker") == null
            && (nextNode == null || pos.getDistKM(tmp) < pos
                .getDistKM(nextNode))) {
          nextNode = tmp;
        }
      }
View Full Code Here

    for (MapWay area : areaBuffer)
      printWay(area, (DefaultEntityViewInfo) area.getViewInfo(), true);
    for (MapWay way : wayBuffer)
      printWay(way, (DefaultEntityViewInfo) way.getViewInfo(), false);
    for (MapEntity node : nodeBuffer) {
      MapNode n;
      if (node instanceof MapWay) {
        List<MapNode> wayNodes = getWayNodes((MapWay) node);
        // needed to show icons for ways, whose abstraction is empty.
        if (wayNodes.isEmpty())
          wayNodes = ((MapWay) node).getNodes();
View Full Code Here

    JTextField minLat = new JTextField("-90");
    JTextField minLon = new JTextField("-180");
    JTextField maxLat = new JTextField("90");
    JTextField maxLon = new JTextField("180");
    if (getMap().getMarkers().size() == 2) {
      MapNode m1 = getMap().getMarkers().get(0);
      MapNode m2 = getMap().getMarkers().get(1);
      minLat.setText(Float.toString(Math.min(m1.getLat(), m2.getLat())));
      minLon.setText(Float.toString(Math.min(m1.getLon(), m2.getLon())));
      maxLat.setText(Float.toString(Math.max(m1.getLat(), m2.getLat())));
      maxLon.setText(Float.toString(Math.max(m1.getLon(), m2.getLon())));
    }
    Object[] content = new Object[] { "Min Latitude:", minLat,
        "Min Longitude:", minLon, "Max Latitude:", maxLat,
        "Max Longitude:", maxLon, };
    boolean done;
View Full Code Here

  /** Expects a <code>MapNode</code> as argument. */
  @Override
  public Set<Action> actions(Object s) {
    Set<Action> result = new LinkedHashSet<Action>();
    MapNode from = (MapNode) s;
    for (WayRef wref : from.getWayRefs()) {
      if (filter == null || filter.isAccepted(wref.getWay())) {
        MapWay way = wref.getWay();
        int nodeIdx = wref.getNodeIdx();
        List<MapNode> wayNodes = way.getNodes();
        MapNode to;
        for (int idx = nodeIdx + 1; idx < wayNodes.size(); idx++) {
          to = wayNodes.get(idx);
          if (goal == null || goal == to
              || to.getWayRefs().size() > 1
              || idx == wayNodes.size() - 1) {
            result.add(new OsmMoveAction(way, from, to));
            break;
          }
        }
        if (!way.isOneway() || ignoreOneWays) {
          for (int idx = nodeIdx - 1; idx >= 0; idx--) {
            to = wayNodes.get(idx);
            if (goal == null || goal == to
                || to.getWayRefs().size() > 1 || idx == 0) {
              result.add(new OsmMoveAction(way, from, to));
              break;
            }
          }
        }
View Full Code Here

   * Assumes a <code>MapNode</code> as state and returns the
   * straight-line-distance to the goal in KM.
   */
  @Override
  public double h(Object s) {
    MapNode currState = (MapNode) s;
    return (new Position(currState)).getDistKM(goalState);
  }
View Full Code Here

      int waySelection) {
    List<Position> result = new ArrayList<Position>();
    try {
      MapWayFilter wayFilter = createMapWayFilter(mapData, waySelection);
      boolean ignoreOneways = (waySelection == 0);
      MapNode fromRNode = mapData.getNearestWayNode(new Position(locs
          .get(0)), wayFilter);
      result.add(new Position(fromRNode.getLat(), fromRNode.getLon()));
      for (int i = 1; i < locs.size()
          && !CancelableThread.currIsCanceled(); i++) {
        MapNode toRNode = mapData.getNearestWayNode(new Position(locs
            .get(i)), wayFilter);
        HeuristicFunction hf = createHeuristicFunction(toRNode,
            waySelection);
        Problem problem = createProblem(fromRNode, toRNode, mapData,
            wayFilter, ignoreOneways, waySelection);
View Full Code Here

    float result = 0f;
    int size = Math.abs(toIndex-fromIndex)+1;
    List<MapNode> nodes = way.getNodes();
    Position pos = new Position(nodes.get(fromIndex));
    for (int i = 1; i < size; i++) {
      MapNode next =
        nodes.get(fromIndex < toIndex ? fromIndex+i : fromIndex-i);
      result+= pos.getDistKM(next);
      pos = new Position(next);
    }
    return result;
View Full Code Here

        return;
      }
      visitedStates.clear();
      String[] locs = new String[marks.size()];
      for (int i = 0; i < marks.size(); i++) {
        MapNode node = marks.get(i);
        Point2D pt = new Point2D(node.getLon(), node.getLat());
        locs[i] = map.getNearestLocation(pt);
      }
      heuristic.adaptToGoal(locs[1], map);
      Agent agent = null;
      MapAgentFrame.SelectionState state = frame.getSelection();
View Full Code Here

    clearButton.setEnabled(hasResults);
  }

  private Position getPosition(MapEntity entity) {
    if (entity instanceof MapNode) {
      MapNode node = (MapNode) entity;
      return new Position(node.getLat(), node.getLon());
    } else if (entity instanceof MapWay) {
      MapNode node = ((MapWay) entity).getNodes().get(0);
      return new Position(node.getLat(), node.getLon());
    }
    return null;
  }
View Full Code Here

TOP

Related Classes of aimax.osm.data.entities.MapNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.