javascript - Trying to call a function with an existing eventListener -
my knowledge of javascript isnt great, im not sure how load second function same event listener.
var tutsimg = "houseproxy.jpg"; var kingtuts = new google.maps.latlng(55.86256, -4.265); var tutsdisplay = new google.maps.marker({ position: kingtuts, map: map, icon: tutsimg, title:"king tut's wah wah hut" }); var contentstring = '<div id="content">'+ '<div id="sitenotice">'+ '</div>'+ '<h2 id="firstheading" class="firstheading">king tuts wah wah hut</h2>'+ '<div id="bodycontent">'+ '</div>'+ '</div>'; var infowindow = new google.maps.infowindow({ content: contentstring }); // creating directions function calcroute () { var request = { origin: 'glasgow', destination: kingtuts, travelmode: google.maps.directionstravelmode.driving } directionsservice.route(request, function(response, status) { if (status == google.maps.directionsstatus.ok) { directionsdisplay.setdirections(response); } }); } google.maps.event.addlistener(tutsdisplay, 'click', function() { infowindow.open(map,tutsdisplay); calcroute(); }); so here create variables display custom marker on location of chosen building. want call function calculates , displays directions users current location location of clicked icon.
any guys?
i can not understand problem. write code show direction user location location of clicked on map. getting user location using geolocation api (html5).
i hope helps :)
(function(global) { var google = global.google; var directionsservice = new google.maps.directionsservice(); var directionsdisplay; // initialize google map var initialize = function() { var mapoptions = { center: new google.maps.latlng(-34.397, 150.644), zoom: 5, maptypeid: google.maps.maptypeid.roadmap }; // initialize map var map = new google.maps.map(document.getelementbyid("map-canvas"), mapoptions); directionsdisplay = new google.maps.directionsrenderer(); directionsdisplay.setmap(map); // add event on map click // @param {object} event custom map event object // contain latitude , langitude google.maps.event.addlistener(map, 'click', function(event) { // getuserposition async function // because require user permission getuserposition(calcroute.bind(global, event.latlng)); }); }; // html 5 geolocation api // user position var getuserposition = function(callback) { global.navigator.geolocation.getcurrentposition(function(position) { var latitude = position.coords.latitude; var langitude = position.coords.longitude; // convert user position google.maps // latlng object var origin = new google.maps.latlng(latitude, langitude); callback(origin); } /*, onerror */ ); }; // calc direction user location // position clicked on map var calcroute = function(distposition, originposition) { var request = { origin: originposition, destination: distposition, travelmode: google.maps.travelmode.driving // it's work onliy 1 continent }; directionsservice.route(request, function(result, status) { if (status === google.maps.directionsstatus.ok) { directionsdisplay.setdirections(result); } }); }; // events google.maps.event.adddomlistener(window, 'load', initialize); }(this)); link on gist
Comments
Post a Comment