Hej
Har försökt läsa lite om problemet men inte riktigt blivit klar över hur jag löser det, jag använder geo coding av min adresser för att visa dom på google maps.. Detta funkar bra men jag vill samla upp de adresser som inte hamnar på kartan och kunna lista dom i efterhand för efterbearbetning.. Som det är nu har jag bara en alert("") som säger att adressen inte finns, jag försökte skriva adressen till en variabel istället men får då bara undefined när jag försöker skriva ut den på sidan.. Läste att det har något med "Callback" att göra i hur Geo coding arbetar?
Försökte rensa ut en liten del av scriptet här under, hela finns längre ner..
Tacksam om någon kan förklarar detta på ett busenkelt sätt?
<script type="text/javascript">
var geocoder;
geocoder = new google.maps.Geocoder();
function getAddress(address, tId, door, size, isDelivered,infoWindowData, plan, activePlan) {
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: stdIcon,
title: address,
tId:tId,
plan: plan,
activePlan: activePlan,
testId:testId
});
});
}
else {
alert(address);
}
});
};
</script>
<script type="text/javascript">
var geocoder;
var map;
geocoder = new google.maps.Geocoder();
var zoomLimit = 2;
var deliver_markers = <%=varAddresses %>
var myPoints = Array();
var iconBooked = new google.maps.MarkerImage("http://www.coloradodot.info/content/programs/bikeped/saferoutes/prodkml/marker-google-green.png");
iconBooked.size = new google.maps.Size(35, 35);
iconBooked.anchor = new google.maps.Point(0, 35);
var iconNotBooked = new google.maps.MarkerImage("http://www.coloradodot.info/content/programs/bikeped/saferoutes/prodkml/marker-google-red-default.png");
iconNotBooked.size = new google.maps.Size(35, 35);
iconNotBooked.anchor = new google.maps.Point(0, 35);
var iconDelivered = new google.maps.MarkerImage("http://www.coloradodot.info/content/programs/bikeped/saferoutes/prodkml/marker-google-green.png");
iconNotBooked.size = new google.maps.Size(35, 35);
iconNotBooked.anchor = new google.maps.Point(0, 35);
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(52.041213, -1.325532),
streetViewControl: false,
zoom:zoomLimit,
mapTypeControl: false,
navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}
var j = 0;
// ====== Geocoding ======
function getAddress(address, tId, door, size, isDelivered,infoWindowData, plan, activePlan) {
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
if(plan.length >0) {
stdIcon = iconBooked;
testId = 1;
}
else{
stdIcon = iconNotBooked;
testId=0;
};
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: stdIcon,
title: address,
tId:tId,
plan: plan,
activePlan: activePlan,
testId:testId
});
google.maps.event.addListener(marker, 'click', function (e) {
if (!this.getMap()._infoWindow) {
this.getMap()._infoWindow = new google.maps.InfoWindow();
}
this.getMap()._infoWindow.close();
this.getMap()._infoWindow.setContent(infoWindowData);
this.getMap()._infoWindow.open(this.getMap(), this);
});
google.maps.event.addListener(marker, 'rightclick', function () {
$('#list').load('mapChanges.asp?do=add&tid='+tId + '&activeplan=' + activePlan + '&plan='+ plan + '&testid=' + marker.testId);
marker.setIcon(iconBooked);
if(marker.testId==0) {
marker.testId=1;
}
else{
marker.testId=0;
marker.setIcon(iconNotBooked);
}
});
}
else {
alert(address);
}
});
};
for (var a = 0; a < deliver_markers.length; a++) {
var tmptId = deliver_markers[a].tId;
var tmpCust = deliver_markers[a].customer;
var tmpDoor = deliver_markers[a].door;
var tmpAdr = deliver_markers[a].address + ' '+ deliver_markers[a].postal + ' ' + deliver_markers[a].city + ' Sverige';
var tmptpPlan = deliver_markers[a].tpPlan;
var tmpactivePlan = deliver_markers[a].activePlan;
var tmpSize = deliver_markers[a].size;
var tmpisDelivered = deliver_markers[a].isDelivered;
var tmpInfoWindowData = '<b>' +deliver_markers[a].customer + '</b> <br>' + deliver_markers[a].address + ' <br>' + deliver_markers[a].postal + ' ' + deliver_markers[a].city + ' <br><br>' + deliver_markers[a].door + ' <br>' + deliver_markers[a].size + ' flk/m';
getAddress(tmpAdr, tmptId, tmpDoor, tmpSize, tmpisDelivered, tmpInfoWindowData,tmptpPlan,tmpactivePlan);
};
google.maps.event.addDomListener(window, 'load', initialize);
</script>