Thanks David, i've got both working, just having trouble getting to
work in the myMapConstructor function. Its my lack of JavaScript
knowledge.





On Dec 22, 9:43 am, David Huynh <[email protected]> wrote:
> Sorry but your question is really about Google Maps. You'd need to ask
> on the Google Maps forum.
>
>    http://groups.google.com/group/Google-Maps-API/
>
> Try to get your map to work independent of Exhibit first, and then
> integrate it.
>
> David
>
> thaiboxer wrote:
> > 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