[OpenLayers-Users] Ka-Map layer - kaOrigin?
Jeff Dege
jdege at korterra.com
Tue Aug 15 12:15:47 CDT 2006
That would explain why I was seeing tiles generated in ka_cache, but
nothing displayed.
Thanks.
(Of course, until I moved to trunk, instead of release-1.0, I wasn't
seeing tiles generated in ka_cache ... you deal with one problem at a
time.)
> -----Original Message-----
> From: Tim Langlois [mailto:tlanglois at archetypecorp.com]
> Sent: Tuesday, August 15, 2006 12:07 PM
> To: Jeff Dege
> Cc: users at openlayers.org
> Subject: Re: [OpenLayers-Users] Ka-Map layer - kaOrigin?
>
> Make sure the tile width and height configured in ka-map's config.php
> matches the size you are using with openlayers. You can
> check the error
> logs of your webserver to see if openlayers is requesting image files
> that do not exist. This is what happens when the tile sizes do not
> match.
>
> On Tue, 2006-08-15 at 10:12 -0500, Jeff Dege wrote:
> > Among the things I've been trying, to see if I could get acceptable
> > performance with the map data I've been working with, is to try the
> > Ka-Map layer, hoping that the tile caches would make a difference.
> >
> > I've been unable to get the Ka-Map layer to work, and I've
> been digging
> > into why.
> >
> > I'm working with the release-1.0 code.
> >
> > I'm declaring the layer as:
> >
> > var baseLayer = new OpenLayers.Layer.KaMap("Cities",
> > "http://localhost:8080/kamap/tile.php?",
> > { 'map': 'gmap', 'g': 'all', 'i': 'png' },
> > 'degrees',
> > 72 );
> >
> > and as far as I can see, that's correct. At least it matches the
> > instructions at:
> >
> >
> >
> http://mailman-viper.python-hosting.com/pipermail/users/2006-J
> une/000058
> > .html
> >
> > The problem is in KaMap.js - the initialize function takes four
> > arguments:
> >
> > initialize: function(name, url, params, origin) {
> > this.kaOrigin = origin;
> > var newArguments = new Array();
> > newArguments.push(name, url, params);
> > OpenLayers.Layer.Grid.prototype.initialize.apply(this,
> > newArguments);
> > this.params = (params ? params : {});
> > if (arguments.length > 0 && params) {
> > OpenLayers.Util.applyDefaults(
> > this.params,
> > this.DEFAULT_PARAMS
> > );
> > }
> > },
> > When I stick in an alert to print the values, 'name' =
> "Cities", 'url' =
> > "http://localhost:8080/kamap/tile.php?", and 'origin' = "degrees".
> >
> > You can see that 'this.kaOrigin' is assigned "degrees".
> >
> > But in the next function, 'this.kaOrigin' is referenced as
> if it had lat
> > and long member variables:
> >
> > addTile:function(bounds,position) {
> > var zoom = this.map.getZoom();
> > var resolution = this.map.getResolution();
> > var scale = 128000000 / Math.pow(2, zoom);
> > // 1280000 is an empirical value for a specific
> tile server, not
> > yet figured out the
> > right way to do this in general.
> > // This will probably be based on map.maxResolution.
> > var cellSize = new
> OpenLayers.Size(resolution*this.tileSize.w,
> > resolution*this.tileSize.h);
> > var pX = Math.floor(((bounds.left + this.kaOrigin.lon) /
> > cellSize.w) * this.tileSize.w);
> > var pY = -Math.floor(((bounds.top+this.kaOrigin.lat) /
> > cellSize.h) * this.tileSize.h);
> > var url = this.getFullRequestString(
> > { t: pY,
> > l: pX,
> > s: scale
> > });
> >
> > The result is that pX and pY are both assigned values of
> NaN, and the
> > URL returned by getFullRequestString() contains "t=NaN&l=NaN", which
> > results in the KaMap server-side scripts drawing and returning empty
> > tiles.
> >
> > >From what I can see, kaOrigin is only referenced in these
> two locations
> > - there isn't any other code, anywhere else, that is
> changing it so that
> > it contains lat and lon member values.
> >
> >
> >
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at openlayers.org
> > http://mailman-viper.python-hosting.com/listinfo/users
> >
> >
>
>
More information about the Users
mailing list