That might be a bit complicated since it's in a Facebook application
I'm developing and, as I said, I fixed it by loading v3.4. If you want
I can revert for a few minutes. Please email me if you're interested.




On Jan 28, 2:45 am, Luke Mahé <[email protected]> wrote:
> Are you able to include a link to your demo?
>
> -- Luke
>
>
>
>
>
>
>
> On Sat, Jan 28, 2012 at 2:58 AM, Johnny <[email protected]> wrote:
> > hi,
>
> > I made a new class based on the custom overlay example in the docs.
> > Basically all it does is display a div on the map. The problem is that
> > when I position it with fromLatLngToDivPixel I get things like
> > -38198.38138981233 for position.y. This has only started in the past
> > few days, and everything was working fine before. AFAIK I haven't
> > changed anything, so this is pretty weird. Does anyone have any
> > insights on this?
>
> > thanks,
> > Johnny.
>
> > p.s. Here's the code:
>
> > function DivOverlay(div, map, position) {
>
> >  // Now initialize all properties.
> >  this.div_ = div;
> >  this.map_ = map;
> >  this.position_ = position;
>
> >  // Explicitly call setMap() on this overlay
> >  this.setMap(map);
> > }
>
> > DivOverlay.prototype = new google.maps.OverlayView();
>
> > DivOverlay.prototype.onAdd = function() {
>
> >  // Note: an overlay's receipt of onAdd() indicates that
> >  // the map's panes are now available for attaching
> >  // the overlay to the map via the DOM.
>
> >  // We add an overlay to a map via one of the map's panes.
> >  // We'll add this overlay to the overlayImage pane.
> >  var panes = this.getPanes();
> >  panes.overlayLayer.style['zIndex'] = 1000;
> >  panes.overlayLayer.appendChild(this.div_);
> > }
>
> > DivOverlay.prototype.draw = function() {
>
> >  // Size and position the overlay. We use a southwest and northeast
> >  // position of the overlay to peg it to the correct position and
> > size.
> >  // We need to retrieve the projection from this overlay to do this.
> >  var overlayProjection = this.getProjection();
>
> >  // Retrieve the southwest and northeast coordinates of this overlay
> >  // in latlngs and convert them to pixels coordinates.
> >  // We'll use these coordinates to resize the DIV.
> >  var position =
> > overlayProjection.fromLatLngToDivPixel(this.position_);
>
> >  // Position the div
> >  var div = this.div_;
> >  var horizontalOffset = 10;
> >  var verticalOffset = div.clientHeight + 10;
> >  div.style.position = 'absolute';
> >  if ((position.x + this.div_.clientWidth + horizontalOffset) >
> > this.map_.getDiv().clientWidth) {
> >        div.style.left = (this.map_.getDiv().clientWidth -
> > this.div_.clientWidth - 20) + 'px';
> >  } else if (position.x < this.div_.clientWidth) {
> >        div.style.left = 10 + 'px';
> >  } else {
> >        div.style.left = position.x + horizontalOffset + 'px';
> >  }
> >  if ((position.y - verticalOffset) > this.map_.getDiv().clientHeight)
> > {
> >        div.style.top = (this.map_.getDiv().clientHeight - verticalOffset) +
> > 'px';
> >  } else if (position.y - verticalOffset < 0) {
> >        div.style.top = position.y + 10 + 'px';
> >  } else {
> >        div.style.top = position.y - verticalOffset + 'px';
> >  }
> > }
>
> > DivOverlay.prototype.onRemove = function() {
> >  this.div_ = null;
> > }
>
> > // Note that the visibility property must be a string enclosed in
> > quotes
> > DivOverlay.prototype.hide = function() {
> >  if (this.div_) {
> >    this.div_.style.visibility = "hidden";
> >  }
> > }
>
> > DivOverlay.prototype.show = function() {
> >  if (this.div_) {
> >    this.div_.style.visibility = "visible";
> >  }
> > }
>
> > DivOverlay.prototype.toggle = function() {
> >  if (this.div_) {
> >    if (this.div_.style.visibility == "hidden") {
> >      this.show();
> >    } else {
> >      this.hide();
> >    }
> >  }
> > }
>
> > DivOverlay.prototype.getDiv = function() {
> >  if (this.div_) {
> >    return this.div_;
> >  }
> > }
>
> > DivOverlay.prototype.destroy = function() {
> >  if (this.getMap()) {
> >    this.setMap(null);
> >  }
> > }
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google Maps JavaScript API v3" 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/google-maps-js-api-v3?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" 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/google-maps-js-api-v3?hl=en.

Reply via email to