Still haven't got this one to work, any help??

On Dec 16, 9:39 pm, thaiboxer <[email protected]> wrote:
> function myMapConstructor(div) {
>       var map = new GMap2(div);
>       map.setCenter(new GLatLng(35.21196570103912, -80.95001220703125),
> 4);
>       map.addControl(new GLargeMapControl());
>       map.enableScrollWheelZoom();
>       map.setMapType(G_NORMAL_MAP);
>         return map;
>        }
>
> i have been trying to generate the function above but with the custom
> map tiling script below with no success.  I figure its better to ask
> here (vs javascript forum)  because you guys are so good with this
> stuff  & know what exhibit requires.
>
> thanks, jw
>
>  var centreLat=0.0;
>     var centreLon=0.0;
>     var initialZoom=2;
>     var imageWraps=true; //SET THIS TO false TO PREVENT THE IMAGE
> WRAPPING AROUND
>     var map; //the GMap2 itself
>
> /////////////////////
> //Custom projection
> /////////////////////
>     function CustomProjection(a,b){
>         this.imageDimension=65536;
>         this.pixelsPerLonDegree=[];
>         this.pixelOrigin=[];
>         this.tileBounds=[];
>         this.tileSize=256;
>         this.isWrapped=b;
>         var b=this.tileSize;
>         var c=1;
>         for(var d=0;d<a;d++){
>           var e=b/2;
>           this.pixelsPerLonDegree.push(b/360);
>           this.pixelOrigin.push(new GPoint(e,e));
>           this.tileBounds.push(c);
>           b*=2;
>           c*=2
>         }
>     }
>
>     CustomProjection.prototype=new GProjection();
>
>     CustomProjection.prototype.fromLatLngToPixel=function(latlng,zoom)
> {
>         var c=Math.round(this.pixelOrigin[zoom].x+latlng.lng()
> *this.pixelsPerLonDegree[zoom]);
>         var d=Math.round(this.pixelOrigin[zoom].y+(-2*latlng.lat())
> *this.pixelsPerLonDegree[zoom]);
>         return new GPoint(c,d)
>     };
>
>     CustomProjection.prototype.fromPixelToLatLng=function
> (pixel,zoom,unbounded){
>         var d=(pixel.x-this.pixelOrigin[zoom].x)/
> this.pixelsPerLonDegree[zoom];
>         var e=-0.5*(pixel.y-this.pixelOrigin[zoom].y)/
> this.pixelsPerLonDegree[zoom];
>         return new GLatLng(e,d,unbounded)
>     };
>
>     CustomProjection.prototype.tileCheckRange=function
> (tile,zoom,tilesize){
>         var tileBounds=this.tileBounds[zoom];
>         if (tile.y<0 || tile.y >= tileBounds) {return false;}
>         if (this.isWrapped) {
>                 if (tile.x<0 || tile.x>=tileBounds) {
>                         tile.x = tile.x%tileBounds;
>                         if (tile.x < 0) {tile.x+=tileBounds}
>                 }
>         }
>         else {
>                 if (tile.x<0 || tile.x>=tileBounds) {return false;}
>         }
>         return true;
>     }
>
>     CustomProjection.prototype.getWrapWidth=function(zoom) {
>         return this.tileBounds[zoom]*this.tileSize;
>     }
> ////////////////////////////////////////////////////////////////////////////
>
>     function customGetTileURL(a,b) {
>       //converts tile x,y into keyhole string
>
>       var c=Math.pow(2,b);
>
>         var d=a.x;
>         var e=a.y;
>         var f="t";
>         for(var g=0;g<b;g++){
>             c=c/2;
>             if(e<c){
>                 if(d<c){f+="q"}
>                 else{f+="r";d-=c}
>             }
>             else{
>                 if(d<c){f+="t";e-=c}
>                 else{f+="s";d-=c;e-=c}
>             }
>         }
>         return "floorplan-tiles/"+f+".jpg"
>     }
>
>     function getWindowHeight() {
>         if (window.self&&self.innerHeight) {
>             return self.innerHeight;
>         }
>         if
> (document.documentElement&&document.documentElement.clientHeight) {
>             return document.documentElement.clientHeight;
>         }
>         return 0;
>     }
>
>     function resizeMapDiv() {
>         //Resize the height of the div containing the map.
>         //Do not call any map methods here as the resize is called
> before the map is created.
>         var d=document.getElementById("map");
>         var offsetTop=0;
>         for (var elem=d; elem!=null; elem=elem.offsetParent) {
>             offsetTop+=elem.offsetTop;
>         }
>         var height=getWindowHeight()-offsetTop-16;
>         if (height>=0) {
>             d.style.height=height+"px";
>         }
>     }
>
>     function load() {
>       if (GBrowserIsCompatible()) {
>         resizeMapDiv();
>         var copyright = new GCopyright(1,
>                               new GLatLngBounds(new GLatLng(-90,
> -180),
>                                                 new GLatLng(90, 180)),
>                               0,
>                               "<a href=\"http://www.casa.ucl.ac.uk
> \">CASA</a>");
>         var copyrightCollection = new GCopyrightCollection
> ("GMapImgCutter");
>         copyrightCollection.addCopyright(copyright);
>
>         //create a custom picture layer
>         var pic_tileLayers = [ new GTileLayer(copyrightCollection , 0,
> 17)];
>         pic_tileLayers[0].getTileUrl = customGetTileURL;
>         pic_tileLayers[0].isPng = function() { return false; };
>         pic_tileLayers[0].getOpacity = function() { return 1.0; };
>         var proj=new CustomProjection(6,imageWraps);
>         var pic_customMap = new GMapType(pic_tileLayers, proj, "Pic",
>             {maxResolution:5, minResolution:0, errorMessage:"Data not
> available"});
>
>         //Now create the custom map. Would normally be
> G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP
>         map = new GMap2(document.getElementById("map"),{mapTypes:
> [pic_customMap]});
>         map.addControl(new GLargeMapControl());
>         map.addControl(new GMapTypeControl());
>         map.addControl(new GOverviewMapControl());
>         map.enableDoubleClickZoom();
>         map.enableContinuousZoom();
>         map.enableScrollWheelZoom();
>         map.setCenter(new GLatLng(centreLat, centreLon), initialZoom,
> pic_customMap);
>
> /////////////////////////////////////////////////////////////////////////////////////
> //Add any markers here e.g.
> //      map.addOverlay(new GMarker(new GLatLng(x,y)));
> /////////////////////////////////////////////////////////////////////////////////////
>
>       }
>     }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SIMILE Widgets" 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/simile-widgets?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to