Package org.onebusaway.geospatial.services

Source Code of org.onebusaway.geospatial.services.UTMProjectionTest

/**
* Copyright (C) 2011 Brian Ferris <bdferris@onebusaway.org>
*
* 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 org.onebusaway.geospatial.services;

import static org.junit.Assert.assertEquals;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.onebusaway.geospatial.model.CoordinatePoint;
import org.onebusaway.geospatial.model.XYPoint;

public class UTMProjectionTest {

  @Test
  public void testProjectionUW() throws NumberFormatException, IOException {
    assertUTMPoint(47.65458077, -122.30502529, 552186.99, 5278143.40);
  }

  @Test
  public void testProjectionBryant() throws NumberFormatException, IOException {

    assertUTMPoint(47.66933, -122.289114, 553366.76, 5279793.45);
  }

  @Test
  public void testMultiProjection() {

    assertUTMPoint(47.65458077, -122.30502529, 552186.99, 5278143.40);
    assertUTMPoint(47.66933, -122.289114, 553366.76, 5279793.45);

    List<CoordinatePoint> points = new ArrayList<CoordinatePoint>();

    points.add(new CoordinatePoint(47.65458077, -122.30502529));
    points.add(new CoordinatePoint(47.66933, -122.289114));

    List<XYPoint> results = new ArrayList<XYPoint>();

    UTMProjection projection = new UTMProjection(10);
    projection.forward(points, results, 2);

    XYPoint p0 = results.get(0);
    XYPoint p1 = results.get(1);

    assertEquals(552186.99, p0.getX(), 0.01);
    assertEquals(5278143.40, p0.getY(), 0.01);

    assertEquals(553366.76, p1.getX(), 0.01);
    assertEquals(5279793.45, p1.getY(), 0.01);
  }

  private void assertUTMPoint(double lat, double lon, double x, double y) {
    CoordinatePoint point = new CoordinatePoint(lat, lon);
    int zone = UTMLibrary.getUTMZoneForLongitude(lon);

    UTMProjection projection = new UTMProjection(zone);
    XYPoint p = projection.forward(point);

    assertEquals(x, p.getX(), 0.01);
    assertEquals(y, p.getY(), 0.01);
  }

}
TOP

Related Classes of org.onebusaway.geospatial.services.UTMProjectionTest

TOP
Copyright © 2018 www.massapi.com. 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.