<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
nope. at least i am not aware of any modified tile.php. life and need
put me to do this hack on setTile. the big challange was (for me) to
put azScales to match kaMap.<br>
<br>
kaMap display engine is fast and simple. nothing fancy, but very
functional. this is why i will use it as a starting point for
displaying tiles in my projects. so, if i can hack into the js code of
kaMap, why use tile.php? ... or openlayers ...<br>
<br>
this could become a layer such as wmslayer ... maybe sometime when i
have time or maybe someone else could do this ;)<br>
<br>
ionut<br>
<br>
Joe Franklin wrote:
<blockquote cite="mid:230473.87347.qm@web39701.mail.mud.yahoo.com"
 type="cite">
  <pre wrap="">very cool.  has anyone modified tile.php so it can accept x/y/z parameters instead of the top/left/scale parameters?  then tile.php could be used instead of TileCache which is written in Python instead of PHP.

joe



--- On Mon, 5/25/09, Ionut Muntean <a class="moz-txt-link-rfc2396E" href="mailto:ionut@muntean.ro">&lt;ionut@muntean.ro&gt;</a> wrote:

  </pre>
  <blockquote type="cite">
    <pre wrap="">From: Ionut Muntean <a class="moz-txt-link-rfc2396E" href="mailto:ionut@muntean.ro">&lt;ionut@muntean.ro&gt;</a>
Subject: [ka-Map-users] kaMap - setTile function - uses openstreetmap servers.
To: "ka-map-users" <a class="moz-txt-link-rfc2396E" href="mailto:ka-map-users@lists.maptools.org">&lt;ka-map-users@lists.maptools.org&gt;</a>
Date: Monday, May 25, 2009, 6:52 AM
kaMap - setTile function - uses
openstreetmap servers.

File that replaces init.php. Paste the code below in a file
on your 
server and load it at run time instead of init.php.

/*init*/
aszScales = new 
Array('110936068.18103503','55468034.09051751','27734017.045258757',
'13867008.522629378','6933504.261313272','3466752.130658053',
'1733376.0653290264','866688.0326645132','433344.0163322566',
'216672.008164711','108336.00408377283','54168.002041886415',
'27084.001020943208','13542.000510471604','6771.000253818478',
'3385.5001283265624','1692.7500655806048');
var mResolutions = new Array('156543.0339', '78271.51695',

'39135.758475', '19567.8792375', '9783.93961875',
'4891.969809375', 
'2445.984904687',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '1222.992452344',
'611.496226172', 
'305.748113086', '152.874056543', '76.437028271',
'38.218514136', 
'19.109257068',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '9.554628534',
'4.777314267', '2.388657133', 
'1.194328567', '0.597164284');
var map = new 
_map({name:'Terra',title:'World',currentScale:2,units:3,resolution:72,version:'3',scales:aszScales,

resolutions:mResolutions});
map.setDefaultExtents(-20037508.34, -200037508.34,
200037508.34, 
200037508.34);
map.setBackgroundColor('rgb(244,244,234)');
map.addLayer(new _layer( { 
name:'Terra',visible:true,opacity:100,imageformat:'png',queryable:false,tileSource:'auto',redrawInterval:-1,refreshInterval:-1,scales:

new 
Array('1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1')}));
this.addMap( map );
this.tileWidth=256;
this.tileHeight=256;
this.server = '<a class="moz-txt-link-freetext" href="http://xxx.xxx.xxx/">http://xxx.xxx.xxx/</a>';
this.tileURL = '<a class="moz-txt-link-freetext" href="http://a.tile.osm.dmtech.ro/tiles/">http://a.tile.osm.dmtech.ro/tiles/</a>';
this.cacheURL = '<a class="moz-txt-link-freetext" href="http://localcache.xxx.xxx/tiles/">http://localcache.xxx.xxx/tiles/</a>';
this.selectMap('Terra');


Replace setTile with the function below.

_layer.prototype.setTile = function(img) {
&nbsp;&nbsp;&nbsp;var tforce = _settings.alwaysForceDraw;
&nbsp;&nbsp;&nbsp;if (arguments.length == 2)
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;tforce = true;
&nbsp;&nbsp;&nbsp;var mercExtents = new
Array('-20037508.34', '20037508.34');
&nbsp;&nbsp;&nbsp;var zIdx = (this._map.currentScale + 2);
// osm zooms are from 0 to 
18. azScales contains only calculated scales from 2 to 18
...
&nbsp;&nbsp;&nbsp;var res = this._map.resolutions[zIdx];
&nbsp;&nbsp;&nbsp;var km = this._map.kaMap;
&nbsp;&nbsp;&nbsp;var left = km.cellSize *
(safeParseInt(img.style.left) + km.xOrigin);
&nbsp;&nbsp;&nbsp;var top = -1 * km.cellSize *
(safeParseInt(img.style.top) + km.yOrigin);
&nbsp;&nbsp;&nbsp;var right = left + km.cellSize *
km.tileWidth;
&nbsp;&nbsp;&nbsp;var bottom = top - km.cellSize *
km.tileHeight;
&nbsp;&nbsp;&nbsp;if (left &lt; mercExtents[0] || left &gt;
mercExtents[2] || top &lt; 
mercExtents[0] || top &gt; mercExtents[1]) return false;
&nbsp;&nbsp;&nbsp;var limit = Math.pow(2, zIdx);
&nbsp;&nbsp;&nbsp;var x = Math.round((left -
mercExtents[0]) / (res * km.tileWidth));
&nbsp;&nbsp;&nbsp;var y = Math.round((mercExtents[1] - top)
/ (res * km.tileHeight));
&nbsp;&nbsp;&nbsp;if (y &lt; 0 || y &gt;= limit) return
false;
&nbsp;&nbsp;&nbsp;x = ((x % limit) + limit) % limit;
&nbsp;&nbsp;&nbsp;if (tforce) {
&nbsp; &nbsp; &nbsp; var src = this._map.kaMap.tileURL +
zIdx + '/' + x + '/' + y + '.png';
&nbsp;&nbsp;&nbsp;} else {
&nbsp; &nbsp; &nbsp; var src = this._map.kaMap.cacheURL +
zIdx + '/' + x + '/' + y + 
'.png';
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;if (img.src != src) {
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;img.style.visibility =
'hidden';
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;img.src = src;
&nbsp;&nbsp;&nbsp;}
};



Have fun!
Ionut Muntean


_______________________________________________
ka-Map-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ka-Map-users@lists.maptools.org">ka-Map-users@lists.maptools.org</a>
<a class="moz-txt-link-freetext" href="http://lists.maptools.org/mailman/listinfo/ka-map-users">http://lists.maptools.org/mailman/listinfo/ka-map-users</a>

    </pre>
  </blockquote>
  <pre wrap=""><!---->

      

  </pre>
</blockquote>
<br>
</body>
</html>