Στέλνω τις google.geocoder διάφορες διευθύνσεις, αλλά οι τιμές στα αποτελέσματα [0] .geometry.location είναι όλοι το ίδιο. Πιστεύω ότι αντιπροσώπευαν την ασύγχρονη φύση της πρόσκλησης, χρησιμοποιώντας μια κλήση πίσω. Όταν προσθέτετε ειδοποιήσεις για να δείτε τις τιμές επέστρεψε, τις διευθύνσεις περάσει στο geocoder.geocode ({ «διεύθυνση»: addr} ... είναι όλα σωστά, η κατάσταση που επιστρέφεται είναι «εντάξει», αλλά το γεωγραφικό πλάτος / μήκος είναι τα ίδια για κάθε κλήση. δεν είμαι πολύ πολύ έμπειρα σε 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 μήνες και ξαφνικά σταμάτησε. Όταν περισσότεροι του ενός δείκτες που χρησιμοποιούνται για να δείξει στο χάρτη, τώρα υπάρχει ένας δείκτης που έχει φαινομενική πάνω γραμμένο επειδή η lat / 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);
}
});
}
Μπορεί κάποιος να με βοηθήσει με αυτό;













