向您展示我正在嘗試使用工作版本所做的工作的最簡單方法:http://jsfiddle.net/t8Brm/11/具有GEO位置支持的所需現代瀏覽器。從navigator.geolocation.getCurrentPosition內部調用此工具
在JS代碼中,我已經註釋掉了導致問題的代碼,以便您可以先看到它的工作原理。
的問題是: 我怎麼能取消下面的代碼使用地理位置添加標記,並在地圖中心,沒有得到Error: position.coords is undefined
$(this).trigger("gMap.addMarker", {
latitude: latitude,
longitude: longitude,
content: "You Are Here"
});
$(this).trigger("gMap.centerAt", {
latitude: latitude,
longitude: longitude
});
這是原來的插件:http://github.com/marioestrada/jQuery-gMap我有增加了GEO位置的額外功能。如下圖所示:
function generateDirections(from, to, directionHtml){
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
$('#'+directionHtml).html('');
var request = {
origin: from,
destination: to,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap($gmap);
directionsDisplay.setPanel(document.getElementById(directionHtml));
directionsService.route(request, function(response, status){
if(status == google.maps.DirectionsStatus.OK){
directionsDisplay.setDirections(response);
if($("#gmaps_from").val().length === 0)
$("#gmaps_from").val(response.routes[0].legs[0].start_address);
}
});
setTimeout(function(){
$("#"+directionHtml).slideDown("slow");
},1000);
}
//make this available to the click element
$.data($('#gmaps_getdirections')[0], 'inst', this);
$('#gmaps_getdirections').click(function(e) {
e.preventDefault();
var from = $('#gmaps_from').val();
if(opts.address){
var to = opts.address;
} else {
var to = parseFloat(opts.latitude) + ", " + parseFloat(opts.longitude);
}
generateDirections(from, to, "gmaps_directions");
//open the google window
//window.open("http://maps.google.com/maps?saddr=" + from + "&daddr=" + to, "GoogleWin", "menubar=1,resizable=1,scrollbars=1,width=750,height=500,left=10,top=10");
});
if(opts.geolocation && navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var from = parseFloat(latitude) + ", " + parseFloat(longitude);
if(opts.address){
var to = opts.address;
} else {
var to = parseFloat(opts.latitude) + ", " + parseFloat(opts.longitude);
}
/*$(this).trigger("gMap.addMarker", {
latitude: latitude,
longitude: longitude,
content: "You Are Here"
});
$(this).trigger("gMap.centerAt", {
latitude: latitude,
longitude: longitude
});*/
generateDirections(from, to, "gmaps_directions");
});
}
你能將你的帖子形成一個問題嗎?在jsFiddle鏈接之後沒有更多的啓發... – Matt
「在JS代碼中,我已經註釋了導致問題的代碼:」毫無疑問,因爲我知道是什麼導致了問題。 –
那你爲什麼把它發佈到SO? – Matt