II want an user to draw a route with polylines on GoogleMaps. I've found a way to snap a polyline ( example in the link, code in below ). The code works with the directions service to draw a polyline on a road, the only problem is this only works with G_TRAVELMODE_DRIVING but I want to use G_TRAVELMODE_WALKING and when you use WALKING you have to supply the map and a div in the constructor of the directions object. When I do that it automatically removes the last line and only displays the current line. I've tried several things like supplying the map as null, or leaving out the map in the constructor.. I've also tried to give a second map in the constructor, get the polylines from the directions service and display them on the right map. But nothing works! I'd appreciate it if someone could help me!
http://econym.org.uk/gmap/example_snappath.htm if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(53.7877, -2.9832),13) map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); var dirn = new GDirections(); var firstpoint = true; var gmarkers = []; var gpolys = []; var dist = 0; GEvent.addListener(map, "click", function(overlay,point) { // == When the user clicks on a the map, get directiobns from that point to itself == if (!overlay) { if (firstpoint) { dirn.loadFromWaypoints([point.toUrlValue(6),point.toUrlValue(6)], {getPolyline:true}); } else { dirn.loadFromWaypoints([gmarkers[gmarkers.length-1].getPoint(),point.toUrlValue(6)], {getPolyline:true}); } } }); // == when the load event completes, plot the point on the street == GEvent.addListener(dirn,"load", function() { // snap to last vertex in the polyline var n = dirn.getPolyline().getVertexCount(); var p=dirn.getPolyline().getVertex(n-1); var marker=new GMarker(p); map.addOverlay(marker); // store the details gmarkers.push(marker); if (!firstpoint) { map.addOverlay(dirn.getPolyline()); gpolys.push(dirn.getPolyline()); dist += dirn.getPolyline().Distance(); document.getElementById("distance").innerHTML="Path length: "+ (dist/1000).toFixed(2)+" km. "+(dist/1609.344).toFixed(2)+" miles."; } firstpoint = false; }); GEvent.addListener(dirn,"error", function() { GLog.write("Failed: "+dirn.getStatus().code); }); } else { alert("Sorry, the Google Maps API is not compatible with this browser"); } -- You received this message because you are subscribed to the Google Groups "Google Maps API V2" 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-api?hl=en.
