Посылаю google.geocoder несколько адресов, но значения в результатах [0] .geometry.location все же. Я считаю, что я составил асинхронную природу вызова с помощью обратного вызова. Когда я добавляю оповещение, чтобы видеть возвращаемые значения, адрес, передаваемый в geocoder.geocode ({ «адрес»: адр} ... все правильно, состояние Возвращается «ки», но широта / долгота одинакова для каждый вызов. Я не очень хорошо разбирается в JavaScript, и я новичок в среде .NET, так что любая помощь будет принята с благодарностью.
Этот код работает отлично от 4/1/2012 до некоторого времени рядом с декабря или в начале 2013 года что-то изменилось с API Google? Я посмотрел на веб-сайте Google, но ничего не могу найти.
Вот мой первоначальный вызов:
<script type=text/javascript src=http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false></script>
<script type=text/javascript>
var geocoder;
var map;
var directionsDisplay;
var directionsRenderer;
var startPoint;
var endPoint;
function initialize()
{
geocoder = new google.maps.Geocoder();
codeAddress();
var myOptions =
{
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById(map_canvas), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
setMarkers(map);
google.maps.event.addListener(map, 'click', function(event) {
dirMarker(event.latLng);
startPoint = event.latLng;
});
}
function codeAddress()
{
var address = document.getElementById(<%=hCVT.ClientID%>).value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert(Status: + status + res from CODE ADDRESS -- + results[0].geometry.location); //TO REMOVE
map.setCenter(results[0].geometry.location);
} else {
alert(Geocode of CVT was not successful for the following reason: + status);
}
});
}
Функция, чтобы установить маркеры и информацию информационного окна (я удалил часть кода, который, казалось, не имеет отношения к вопросу)
function setMarkers(map)
{
// Add markers to the map
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
var places = new Array([,,,,]);
var xx = String;
xx = document.getElementById(<%=addys.ClientID%>).value;
var placeholder = xx.split(,);
var latlng;
var i = 0;
for(var y = 0; y < (placeholder.length / 5 - 1); i=i+5)
{
places[y, 0] = placeholder[i];
places[y, 1] = placeholder[i+1]; //Unit Status
places[y, 2] = placeholder[i+2]; // Long - not used
places[y, 3] = placeholder[i+3]; // Zindex
places[y, 4] = placeholder[i+4]; // HTML for information window
addr = places[y,0];
ustat = places[y,1];
zind = places[y,3];
iwdata = places[y,4];
getLatLong(addr, iwdata, ustat, zind, function(latlng, addr, iwdata, ustat, zind) {
var marker = new google.maps.Marker({
position: latlng,
map: map,
html: iwdata,
icon: pinImage,
shadow: pinShadow,
shape: shape,
title: addr,
zIndex: parseInt(places[y,3])
});
var infowindow = new google.maps.InfoWindow({
content: iwdata});
});
y = y + 1;
}
}
Функция, где я считаю, что проблема заключается следующим образом. С тех пор было несколько адресов отправляется в Google, я добавил встроенный тайм-аут, чтобы не превысить ограничения. Опять же, все это работало в течение 8 месяцев, и вдруг остановился. Если несколько маркеров используются, чтобы показать на карте, в настоящее время существует один маркер, который кажущийся перезаписаны, так как широта / LNG возвращение такой же, как первоначальный вызов в функции codeAddress (). В попытке найти решение я добавлял оповещение, чтобы показать мне возвращаемые значения. Я путаться со значениями Bugzilla, как они бы меня к JavaScript Google, который был полностью над моей головой.
function getLatLong(addr, iwdata, ustat, zind, callback){
geocoder.geocode( { 'address': addr}, function(results, status){
if (status == google.maps.GeocoderStatus.OK){
callback(results[0].geometry.location, addr, iwdata, ustat, zind);
} else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
window.setTimeout(function() {self.getLatLong(addr, iwdata, ustat, zind, callback);
},500);
} else {
alert(Address Geocode failure: + addr + ==== + status + Y value: + zind + res --- + res);
}
});
}
Кто-нибудь может мне с этим помочь?













