Как расчитаться дистанцию с Google API
How to calculate driving distance with Google Maps API
http://briancray.com/2009/06/23/calc...ogle-maps-api/ все выполнил как у них фактически. только у меня вместо сабмита, обработчик события фокус аут:
$(document).ready(function () {
initialize();
$("#shiperCityBox").focusout(function () { showLocation(); return false; });
});
function initialize() {
geocoder = new GClientGeocoder();
gDir = new GDirections();
GEvent.addListener(gDir, "load", function () {
var drivingDistanceMiles = gDir.getDistance().meters / 1609.344;
document.getElementById('carrierMilesBox').value = drivingDistanceMiles.toFixed();
});
}
function showLocation() {
geocoder.getLocations(document.getElementById("shiperCityBox").value, function (response) {
if (!response || response.Status.code != 200) {
alert("Sorry, we were unable to geocode the first address");
}
else {
location1 = { lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address };
geocoder.getLocations(document.getElementById("consigneeCityBox").value, function (response) {
if (!response || response.Status.code != 200) {
alert("Sorry, we were unable to geocode the second address");
}
else {
location2 = { lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address };
gDir.load('from: ' + location1.address + ' to: ' + location2.address);
}
});
}
});
но ничего не работает, всегда Response - response is not defined. В чем проблема? кто может подсказать? если просто взять повесить как обработчик на кнопку: <asp:Button ID="btnBottomSave" Text="Save" runat="server" OnClientClick="showLocation(); return false;" OnClick="Save_Click" CssClass="Button" /> все работает хорошо, но мне надо чтобы выполнялся еще серверный код, а при такой ситуации он не выполняется... что нужно делать? |
может просто из формы гугл что-то еще берет помимо обычного нажатия кнопки. Это третья версия API я так понимаю? просто с третей не работал, небыло возможности... но со второй работал... хотя третья отличается значительно от второй.
|
да вроде не берет ничего!
|
косяк был в том что у меня элементы были в update panel. вопрос был решен.
Sys.WebForms.PageRequestManager.getInstance().add_ endRequest(RequestHandler); function RequestHandler() { initialize(); $("#shiperCityBox").focusout(function () { showLocation(); }); $("#consigneeCityBox").focusout(function () { showLocation(); }); $("#shiperAddressBox").focusout(function () { showLocation(); }); $("#consigneeAddressBox").focusout(function () { showLocation(); }); } |
| Часовой пояс GMT +3, время: 08:37. |