No URL yet, it either renders one or the other.

This will really show my lack of javascript knowledge.

//// I am pretty sure this is where my issue is. The myMapConstructor
(div) has the variable  var map =  new GMap2(div);


function myMapConstructor(div) {
      var map = new GMap2(div);

/// Where as the custom tile has the var map; //the GMap2 itself then
uses it with the other arguments.

var map; //the GMap2 itself

map = new GMap2(document.getElementById("map"),{mapTypes:
[pic_customMap]});





On Dec 22, 9:49 am, David Huynh <[email protected]> wrote:
> Then please include a URL to your exhibit!
>
> David
>
> thaiboxer wrote:
> > 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