/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.api.geometry; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import com.opendoorlogistics.api.geometry.LatLong; public interface LatLongToScreen { Point2D getOnScreenPixelPosition(LatLong latLong); Point2D getWorldBitmapPixelPosition(LatLong latLong); Rectangle2D getViewportWorldBitmapScreenPosition(); LatLong getLongLat(double pixelX, double pixelY); /** * A hash-map compatible key which identifies the zoom level. * When upscaling, this key can be a complex object which is a combination * of the original zoom and the upscaling factor. * * Subsequent calls to the renderer where call 1 has zoomKey1 * and call 3 has zoomKey2 will have the same zoom level (per pixel * resolution etc) if zoomKey1.equals(zoomKey2). * @return */ Object getZoomHashmapKey(); /** * The zoom level used for object filtering * @return */ int getZoomForObjectFiltering(); }