OK, I've copied your code into a project and I see the same problem.  The
next step to debug this would be to set break points in each of the
customized methods for NorthmoorMapProjection and step through in hosted
mode.

On Thu, Sep 25, 2008 at 12:47 AM, Tim White <[EMAIL PROTECTED]> wrote:

>
> Hi -
>
>  When defining a custom Projection using GWT 1.5.2 and gwt-maps-1.0
> RC1, I can't seem to get around this:
>
>  com.google.gwt.dev.shell.HostedModeException: Expected primitive type
> boolean; actual value was undefined
>        at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:51)
>        at
>
> com.google.gwt.dev.shell.ie.SwtOleGlue.convertVariantsToObjects(SwtOleGlue.java:
> 57)
>        at
> com.google.gwt.dev.shell.ie.IDispatchImpl.callMethod(IDispatchImpl.java:
> 119)
>        at
> com.google.gwt.dev.shell.ie.IDispatchProxy.invoke(IDispatchProxy.java:
> 155)
>        at
> com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:
> 294)
>        at
> com.google.gwt.dev.shell.ie.IDispatchImpl.method6(IDispatchImpl.java:
> 194)
>        at
> org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:
> 117)
>        at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native Method)
>        at
> org.eclipse.swt.internal.ole.win32.IDispatch.Invoke(IDispatch.java:
> 64)
>        at
> org.eclipse.swt.ole.win32.OleAutomation.invoke(OleAutomation.java:
> 493)
>        at
> org.eclipse.swt.ole.win32.OleAutomation.invoke(OleAutomation.java:
> 417)
>        at
>
> com.google.gwt.dev.shell.ie.ModuleSpaceIE6.doInvokeOnWindow(ModuleSpaceIE6.java:
> 67)
>        at
> com.google.gwt.dev.shell.ie.ModuleSpaceIE6.doInvoke(ModuleSpaceIE6.java:
> 152)
>        at
> com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
> 447)
>        at
> com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:
> 248)
>        at
>
> com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:
> 107)
>        at
> com.google.gwt.maps.client.impl.__MapImplImpl.checkResize(transient
> source for com.google.gwt.maps.client.impl.__MapImplImpl)
>        at com.google.gwt.maps.client.MapWidget.checkResize(MapWidget.java:
> 729)
>        at
> com.google.gwt.maps.client.MapWidget.onAttach(MapWidget.java:1507)
>        at com.google.gwt.user.client.ui.Widget.setParent(Widget.java:231)
>        at com.google.gwt.user.client.ui.Panel.adopt(Panel.java:119)
>        at com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:
> 86)
>        at
> com.google.gwt.user.client.ui.AbsolutePanel.add(AbsolutePanel.java:
> 80)
>        at
>
> com.cyface.northmoor.map.client.NorthmoorMap.onModuleLoad(NorthmoorMap.java:
> 64)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>        at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:320)
>        at
>
> com.google.gwt.dev.shell.BrowserWidget.attachModuleSpace(BrowserWidget.java:
> 329)
>        at com.google.gwt.dev.shell.ie.BrowserWidgetIE6.access
> $300(BrowserWidgetIE6.java:37)
>        at
>
> com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.gwtOnLoad(BrowserWidgetIE6.java:
> 76)
>        at
>
> com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.invoke(BrowserWidgetIE6.java:
> 139)
>        at
> com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:
> 294)
>        at
> com.google.gwt.dev.shell.ie.IDispatchImpl.method6(IDispatchImpl.java:
> 194)
>        at
> org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:
> 117)
>        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
>        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1925)
>        at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
>        at com.google.gwt.dev.GWTShell.pumpEventLoop(GWTShell.java:720)
>        at com.google.gwt.dev.GWTShell.run(GWTShell.java:593)
>        at com.google.gwt.dev.GWTShell.main(GWTShell.java:357)
>
> My projection class:
>
> public class NorthmoorMapProjection extends Projection {
>        int imageDimension = 65536;
>        int maxZoom = 5;
>        int tileSize = 256;
>        Point[] pixelOrigin = new Point[maxZoom];
>        int[] pixelsPerLonDegree = new int[maxZoom];
>        int[] tileBounds = new int[maxZoom];
>        boolean isWrapped = false;
>
>        public NorthmoorMapProjection() {
>                int currentTileSize = this.tileSize;
>                int currentTileBounds = 1;
>                for (int zoomLevel = 0; zoomLevel < this.maxZoom;
> zoomLevel++) {
>                        int tileCenter = currentTileSize / 2;
>                        this.pixelsPerLonDegree[zoomLevel] = currentTileSize
> / 360;
>                        this.pixelOrigin[zoomLevel] =
> Point.newInstance(tileCenter,
> tileCenter);
>                        this.tileBounds[zoomLevel] = currentTileBounds;
>                        currentTileSize *= 2;
>                        currentTileBounds *= 2;
>                }
>        }
>
>        @Override
>        public Point fromLatLngToPixel(LatLng latLng, int zoomLevel) {
>                Point pixelOrigin = this.pixelOrigin[zoomLevel];
>                int pixelOriginX = pixelOrigin.getX();
>                int pixelOriginY = pixelOrigin.getY();
>                int pixelsPerLonDegreeForCurrentZoom =
> this.pixelsPerLonDegree[zoomLevel];
>                double currentLongitude = latLng.getLongitude();
>                double currentLatitude = latLng.getLatitude();
>                long newX = Math.round(pixelOriginX + currentLongitude *
> pixelsPerLonDegreeForCurrentZoom);
>                long newY = Math.round(pixelOriginY + (-2 * currentLatitude)
> *
> pixelsPerLonDegreeForCurrentZoom);
>                int newXint = new Long(newX).intValue();
>                int newYint = new Long(newY).intValue();
>                return Point.newInstance(newXint, newYint);
>        }
>
>        @Override
>        public LatLng fromPixelToLatLng(Point point, int zoomLevel, boolean
> unbounded) {
>                Point pixelOrigin = this.pixelOrigin[zoomLevel];
>                int pixelOriginX = pixelOrigin.getX();
>                int pixelOriginY = pixelOrigin.getY();
>                int pixelsPerLonDegreeForCurrentZoom =
> this.pixelsPerLonDegree[zoomLevel];
>                int currentX = point.getX();
>                int currentY = point.getY();
>                double d = currentX - pixelOriginX /
> pixelsPerLonDegreeForCurrentZoom;
>                double e = -0.5 * (currentY - pixelOriginY) /
> pixelsPerLonDegreeForCurrentZoom;
>                return LatLng.newInstance(e, d, unbounded);
>
>        }
>
>        @Override
>        public double getWrapWidth(int zoomLevel) {
>                return this.tileBounds[zoomLevel] * this.tileSize;
>        }
>
>        @Override
>        public boolean tileCheckRange(TileIndex index, int zoomLevel, int
> tileSize) {
>                int tileBounds = this.tileBounds[zoomLevel];
>                int newX = index.getX();
>                if (index.getY() < 0 || index.getY() >= tileBounds) {
>                        return false;
>                }
>                if (this.isWrapped) {
>                        if (index.getX() < 0 || index.getX() >= tileBounds)
> {
>                                newX = index.getX() % tileBounds;
>                                if (index.getX() < 0) {
>                                        newX += tileBounds;
>                                }
>                        }
>                } else {
>                        if (index.getX() < 0 || index.getX() >= tileBounds)
> {
>                                return false;
>                        }
>                }
>                return true;
>        }
>
>
> Any thoughts?  Thanks!
>
> Tim
>
> >
>


-- 
Eric Z. Ayers - GWT Team - Atlanta, GA USA
http://code.google.com/webtoolkit/

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to