package com.google.gwt.maps.client.overlays;
/*
* #%L
* GWT Maps API V3 - Core API
* %%
* Copyright (C) 2011 - 2012 GWT Maps API V3
* %%
* 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.
* #L%
*/
import com.google.gwt.maps.client.AbstractMapsGWTTestHelper;
import com.google.gwt.maps.client.LoadApi.LoadLibrary;
import com.google.gwt.maps.client.MapOptions;
import com.google.gwt.maps.client.MapTypeId;
import com.google.gwt.maps.client.MapWidget;
import com.google.gwt.maps.client.base.LatLng;
import com.google.gwt.maps.client.base.Point;
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewMethods;
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnAddHandler;
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnDrawHandler;
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnRemoveHandler;
import com.google.gwt.user.client.ui.RootPanel;
public class MapCanvasProjectionGwtTest extends AbstractMapsGWTTestHelper {
@Override
public LoadLibrary[] getLibraries() {
return LoadLibrary.values();
}
@SuppressWarnings("unused")
public void testUse() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromContainerPixelToLatLng() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromContainerPixelToLatLng(pixel);
LatLng expected = LatLng.newInstance(40.75820649610606, -74.20574920654298);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromContainerPixelToLatLng_noWrap_true() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromContainerPixelToLatLng(pixel, true);
LatLng expected = LatLng.newInstance(40.75820649610606, -74.20574920654298);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromContainerPixelToLatLng_noWrap_false() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromContainerPixelToLatLng(pixel, false);
LatLng expected = LatLng.newInstance(40.75820649610606, -74.20574920654298);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromDivPixelToLatLng() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromDivPixelToLatLng(pixel);
LatLng expected = LatLng.newInstance(-74.22147d, 131.625d);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromDivPixelToLatLng_noWap_true() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromDivPixelToLatLng(pixel, true);
LatLng expected = LatLng.newInstance(-74.22147d, 131.625d);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromDivPixelToLatLng_noWrap_false() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
Point pixel = Point.newInstance(100d, 110d);
LatLng actual = o.fromDivPixelToLatLng(pixel, false);
LatLng expected = LatLng.newInstance(-74.22147d, 131.625d);
assertLatLngEquals(expected, actual);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromLatLngToContainerPixel() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
LatLng testLatLng = LatLng.newInstance(34.4344d, -89.2433d);
Point actual = o.fromLatLngToContainerPixel(testLatLng);
// actual -87500.08256000001, 46656.067931791535
assertEquals(Double.doubleToLongBits(-87500.08256000001), Double.doubleToLongBits(actual.getX()));
assertEquals(Double.doubleToLongBits(46656.067931791535), Double.doubleToLongBits(actual.getY()));
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testfromLatLngToDivPixel() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
LatLng testPt = LatLng.newInstance(34.4344d, -89.2433d);
Point actual = o.fromLatLngToDivPixel(testPt);
assertEquals(10d, actual.getX());
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
public void testgetWorldWidth() {
asyncLibTest(new Runnable() {
@Override
public void run() {
LatLng center = LatLng.newInstance(40.740, -74.18);
MapOptions options = MapOptions.newInstance();
options.setZoom(13);
options.setCenter(center);
options.setMapTypeId(MapTypeId.HYBRID);
MapWidget mapWidget = new MapWidget(options);
mapWidget.setSize("500px", "500px");
RootPanel.get().add(mapWidget);
OverlayViewOnDrawHandler onDrawHandler = new OverlayViewOnDrawHandler() {
@Override
public void onDraw(OverlayViewMethods methods) {
MapCanvasProjection o = methods.getProjection();
double actual = o.getWorldWidth();
double expected = 256;
assertEquals(expected, actual, 1e-2);
finishTest();
}
};
OverlayViewOnAddHandler onAddHandler = new OverlayViewOnAddHandler() {
@Override
public void onAdd(OverlayViewMethods methods) {
finishTest();
}
};
OverlayViewOnRemoveHandler onRemoveHnadler = new OverlayViewOnRemoveHandler() {
@Override
public void onRemove(OverlayViewMethods methods) {
finishTest();
}
};
OverlayView overlay = OverlayView.newInstance(mapWidget, onDrawHandler, onAddHandler, onRemoveHnadler);
}
});
}
}