Ik stuur de google.geocoder verschillende adressen, maar de waarden in de resultaten [0] .geometry.location zijn allemaal hetzelfde. Ik denk dat ik goed voor de asynchrone aard van het gesprek via een telefoontje terug. Als ik waarschuwingen te zien van de waarden die worden geretourneerd, de adressen doorgegeven in de geocoder.geocode (voeg { 'adres': addr} ... zijn allemaal correct, de status terug is ok, maar de lengte / breedte gelijk zijn voor elke oproep. ik ben niet erg goed thuis in JavaScript, en ik ben nieuw in de .NET-omgeving, dus elke hulp zou zeer gewaardeerd worden.
Deze code werkte perfect van 4/1/2012 tot enige tijd in de buurt van december of begin 2013. Is er iets veranderd met de Google API? Ik heb gekeken naar de website van Google, maar kan niets vinden.
Hier is mijn eerste gesprek:
<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);
}
});
}
De functie om de markers en info venster informatie in te stellen (ik heb een aantal van de code die niet relevant leek de vraag verwijderd)
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;
}
}
De functie waar ik denk dat het probleem ligt volgt. Aangezien er verschillende adressen worden verzonden naar google, heb ik een ingebouwde timeout teneinde niet de beperkingen overschrijden. Nogmaals, dit alles werkte voor ongeveer 8 maanden en is plotseling gestopt. Indien meerdere markers gebruikt om te laten zien op de kaart, nu is er een marker die is schijnbaar boven geschreven, omdat de lat / lng rendement is hetzelfde als de eerste oproep in de functie codeAddress (). In een poging om een oplossing te vinden heb ik het toevoegen van waarschuwingen om me te laten zien de terugkeer waarden. Ik werd verward met de bugzilla waarden als ze me zou nemen naar de google javascript die volledig over mijn hoofd was.
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);
}
});
}
Kan iemand me helpen met dit?













