Glad someone else has ported the arrowline code to V3 - just the job for a pipeline.
Lack of the projection object early on with V3 is a pain. As its not that complicated, it can be easier to recreate the projection code in your own object e.g. function MyProjection() { }; MyProjection.prototype.fromLatLngToPoint = function(latLng, opt_point) { if (latLng == null) return null; var point = opt_point || new google.maps.Point(0, 0); var lat = latLng.lat(); var lng = latLng.lng(); if (lng > 180.0) lng -= 360.0; lng /= 360.0; lng += 0.5; lat = 0.5 - ((Math.log(Math.tan((Math.PI / 4.0) + ((0.5 * Math.PI * lat) / 180.0))) / Math.PI) / 2.0); point.x = lng * 256.0; point.y = lat * 256.0; return point; }; MyProjection.prototype.fromPointToLatLng = function(point, noWrap) { var lng = -180.0 + ((point.x/256.0) * 360.0); var lat = (180.0 / Math.PI) * ((2 * Math.atan(Math.exp(Math.PI * (1 - (2 * (point.y/256.0)))))) - (Math.PI / 2)); return new google.maps.LatLng(lat, lng, noWrap); }; On May 31, 1:30 pm, "geocode...@gmail.com" <geocode...@gmail.com> wrote: > On May 30, 11:42 pm, Mapper99 <mappe...@gmail.com> wrote: > > > Any idea why this code does not work in IE? > > Not with the error messages I have seen: > > Message: Object doesn't support this property or method > Line: 293 > Char: 3 > Code: 0 > URI:http://www.geocodezip.com/laudontech_com_papapump-plannerA.html > > I haven't had a chance to look at the problem on a computer that has a > debugger for IE. I will when I can, but it might be a while (the > weekend). > > -- Larry > > > > > > > > > > > On Wednesday, May 30, 2012 10:15:06 PM UTC-7, geoco...@gmail.com wrote: > > > > On May 30, 10:05 pm, "geocode...@gmail.com" <geocode...@gmail.com> > > > wrote: > > > > On May 30, 7:30 pm, Mapper99 <mappe...@gmail.com> wrote: > > > > > > Hmmm..I did listen to the map projection event and indeed it is > > > defined. > > > > > The code that is failing I think has to do with the point... > > > > > > I uploaded a sample here: > > > > > >http://laudontech.com/temp2/badcode/papapump-planner.html > > > > > > You need to click on each of the icons on the right of the map > > > > > then click the done button at the very bottom of the page > > > > > Click done once, error occurs. Click done again, and all is well > > > > > > Very strange! > > > > > Reading the documentation: > > >https://developers.google.com/maps/documentation/javascript/reference... > > > > > google.maps.MapCanvasProjection object > > > > > This object is made available to the OverlayView from within the draw > > > > method. It is not guaranteed to be initialized until draw is called. > > > > > looks you need to call draw before you use the projection. > > > > This seems to work: > > >http://www.geocodezip.com/laudontech_com_papapump-plannerA.html > > > (except in IE) > > > > -- Larry > > > > > > On Wednesday, May 30, 2012 5:08:16 AM UTC-7, geoco...@gmail.comwrote: > > > > > > > On May 29, 11:26 pm, Mapper99 <mappe...@gmail.com> wrote: > > > > > > > I am using some wonderful code to draw arrow on line segments > > > thanks to > > > > > > > this code from Bill Chadwick: > > > > > > > >http://wtp2.appspot.com/ArrowLine.htm > > > > > > > > The problem is I need to call the function twice for the arrows to > > > > > > appear. > > > > > > > The first time I call the code I get this error: > > > > > > > > this.prj is undefined > > > > > > > > var p1 = > > > this.prj.fromLatLngToContainerPixel(this.points[0]);//first > > > > > > point > > > > > > > > This is the code I am using to call the function: > > > > > > > > var connectTheDots = [ > > > > > > > marker1.getPosition(), > > > > > > > marker2.getPosition(), > > > > > > > marker3.getPosition(), > > > > > > > ]; > > > > > > > > var poly1 = new > > > > BDCCArrowedPolyline(connectTheDots,"blue",4,0.3,null,30,7,"#0000FF",2,0.5); > > > > > > > > Any idea why this code fails the first time? this.points[0] > > > indeed is a > > > > > > > valid object. > > > > > > > The v3 API is event driven. > > > > > > > Has the projection been initialized the first time it is used? You > > > > > > may have to wait for an event that tells you it has been initialized > > > > > > before using it. > > > > > > > From the documentation: > > > > > > getProjection() > > > > > > Projection > > > > > > Returns the current Projection. > > > > > > If the map is not yet initialized (i.e. the mapType is still null) > > > > > > then the result is null. Listen to projection_changed and check its > > > > > > value to ensure it is not null. > > > > > > > -- Larry > > > > > > > > Thanks in advance, > > > > > > > > Mapper99 > > > > > On Wednesday, May 30, 2012 5:08:16 AM UTC-7, geoco...@gmail.comwrote: > > > > > > > On May 29, 11:26 pm, Mapper99 <mappe...@gmail.com> wrote: > > > > > > > I am using some wonderful code to draw arrow on line segments > > > thanks to > > > > > > > this code from Bill Chadwick: > > > > > > > >http://wtp2.appspot.com/ArrowLine.htm > > > > > > > > The problem is I need to call the function twice for the arrows to > > > > > > appear. > > > > > > > The first time I call the code I get this error: > > > > > > > > this.prj is undefined > > > > > > > > var p1 = > > > this.prj.fromLatLngToContainerPixel(this.points[0]);//first > > > > > > point > > > > > > > > This is the code I am using to call the function: > > > > > > > > var connectTheDots = [ > > > > > > > marker1.getPosition(), > > > > > > > marker2.getPosition(), > > > > > > > marker3.getPosition(), > > > > > > > ]; > > > > > > > > var poly1 = new > > > > BDCCArrowedPolyline(connectTheDots,"blue",4,0.3,null,30,7,"#0000FF",2,0.5); > > > > > > > > Any idea why this code fails the first time? this.points[0] > > > indeed is a > > > > > > > valid object. > > > > > > > The v3 API is event driven. > > > > > > > Has the projection been initialized the first time it is used? You > > > > > > may have to wait for an event that tells you it has been initialized > > > > > > before using it. > > > > > > > From the documentation: > > > > > > getProjection() > > > > > > Projection > > > > > > Returns the current Projection. > > > > > > If the map is not yet initialized (i.e. the mapType is still null) > > > > > > then the result is null. Listen to projection_changed and check its > > > > > > value to ensure it is not null. > > > > > > > -- Larry > > > > > > > > Thanks in advance, > > > > > > > > Mapper99 -- 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 google-maps-js-api-v3@googlegroups.com. To unsubscribe from this group, send email to google-maps-js-api-v3+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.