javascript - Destination from array on marker click -
i not experienced javascript i'd better right now. terribly stuck on project working on , need badly.
i making map locations marked data set exported file on google docs. far have managed populate markers on map , infowindows set up.
i'd user able click on marker on map, , click on directions button in infowindow directions current location (using geolocation) location of marker clicked on.
i feel close (maybe problem), don't know, , after days of trying still can't figure out, how lat,lng array getdir function. please, appreciated. thank in advance.
here page map on now.
here how calling , setting data map -
function initialize() { var mylatlng100 = new google.maps.latlng(45.522535,-122.659492); var mapoptions = { center: mylatlng100, zoom: 15, maptypecontrol: true, zoomcontrol: true, zoomcontroloptions: { style: google.maps.zoomcontrolstyle.small } }; map = new google.maps.map(document.getelementbyid("map-canvas"), mapoptions); var transitlayer = new google.maps.transitlayer(); transitlayer.setmap(map); $.getjson('https://spreadsheets.google.com/feeds/list/0anapthosnezvdhbpcu1nemz5ufjaoxzdmxlbuvdnmwc/od6/public/values?alt=json', function(data) { (var = 0; < data.feed.entry.length; i++) { var markerid = data.feed.entry[i].gsx$markerid.$t; var lat = data.feed.entry[i].gsx$lat.$t; var lng = data.feed.entry[i].gsx$lng.$t; var title = data.feed.entry[i].gsx$name.$t; var contentstring = "<div class='contentstring'><h3>" + data.feed.entry[i].gsx$name.$t + "</h3><br><p>" + data.feed.entry[i].gsx$address.$t + "<br>" + data.feed.entry[i].gsx$city.$t + ", " + data.feed.entry[i].gsx$state.$t + "</p></div>" + "<input type='button' onclick=getdir() value='get direction here'>"; var markers = [markerid, lat, lng, title, contentstring]; createmarker(lat, lng, title, contentstring); } }); } this getdir() troubles -
function getdir(lat,lng) { if (navigator.geolocation) { //checks if browser supports geolocation navigator.geolocation.getcurrentposition(function (position) { //this gets var latitude = position.coords.latitude; //users current var longitude = position.coords.longitude; //location var start = new google.maps.latlng(latitude,longitude); //creates variable map coordinates var directionsservice = new google.maps.directionsservice(); var directionsdisplay = new google.maps.directionsrenderer(); directionsdisplay.setmap(map); directionsdisplay.setpanel(document.getelementbyid('panel')); var request = { origin: start, destination: new google.maps.latlng(lat,lng), travelmode: google.maps.directionstravelmode.walking }; directionsservice.route(request, function (response, status) { if (status == google.maps.directionsstatus.ok) { directionsdisplay.setdirections(response); } }); }); } else { // browser doesn't support geolocation handlenogeolocation(false); } }
add latitude , longitude html in infowindow. change this:
var lat = data.feed.entry[i].gsx$lat.$t; var lng = data.feed.entry[i].gsx$lng.$t; var contentstring = "<div class='contentstring'><h3>" + data.feed.entry[i].gsx$name.$t + "</h3><br><p>" + data.feed.entry[i].gsx$address.$t + "<br>" + data.feed.entry[i].gsx$city.$t + ", " + data.feed.entry[i].gsx$state.$t + "</p></div>" + "<input type='button' onclick=getdir() value='get direction here'>"; to:
var lat = data.feed.entry[i].gsx$lat.$t; var lng = data.feed.entry[i].gsx$lng.$t; var contentstring = "<div class='contentstring'><h3>" + data.feed.entry[i].gsx$name.$t + "</h3><br><p>" + data.feed.entry[i].gsx$address.$t + "<br>" + data.feed.entry[i].gsx$city.$t + ", " + data.feed.entry[i].gsx$state.$t + "</p></div>" + "<input type='button' onclick=getdir("+lat+","+lng+") value='get direction here'>";
Comments
Post a Comment