Ben google.geocoder birçok adrese gönderiyorum ama [0] .geometry.location sonuçlarında değerler hep aynıdır. Ben geri çağrı kullanılarak aramanın asenkron doğa oluşturdu inanıyoruz. Ben değerleri (, geocoder.geocode geçirilen adresleri verildiğini görmek uyarıları eklediğinizde { 'adres': addr} ... hepsi doğru, döndürülen durum Tamam, ama lat uzun süre aynıdır / her çağrı. Ben çok iyi JavaScript usta ve .net ortamına yeni değilim, bu yüzden herhangi bir yardım büyük takdir değilim.
Bu kod Aralık yakınındaki bazı zamana kadar 4/1/2012 ila mükemmel çalıştı ya 2013 erken şey hakkında API ile değişti mi? Ben google'ın web sitesinde baktım ama bir şey bulamıyorum.
İşte benim ilk çağrısıdır:
<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);
}
});
}
işaretleri ve bilgi penceresi bilgileri ayarlamak için fonksiyonu (ı soruya ilgisiz görünüyordu kodu bazılarını kaldırdık)
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;
}
}
Sorun yatıyor inanıyorum fonksiyonu izler. Birkaç adresleri google gönderiliyor vardı beri, sınırlarını aşmayacak şekilde bir zaman aşımı inşa ekledi. Yine, bu tüm yaklaşık 8 ay çalıştı ve aniden durdu. çeşitli belirteçler haritada göstermek için kullanılan yerlerde, hemen enlem / Ing dönüş codeAddress () fonksiyonunda ilk çağrı ile aynı olduğu için yazılı üzerinde görünen bir bir marker vardır. Bir çözüm bulmak için bir çaba bana dönüş değerlerini göstermek için uyarıları ekleme edilmiştir. tamamen kafamın bitmişti google javascript beni ele alacağını gibi ben bugzilla değerlerle karıştı başlamıştı.
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);
}
});
}
Herkes bu konuda bana yardımcı olabilir misiniz?













