Я запускаю следующий скрипт, который выполняет геокодирование:
function find_callback(response){
var map = g_waze_map.map;
var first_result = response[0];
var lonlat = new OpenLayers.LonLat(first_result.location.lon,first_result.location.lat);
g_waze_map.map.setCenter(lonlat);
var size = new OpenLayers.Size(36,47);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.waze.co.il/images/home.png',size,offset);
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(lonlat,icon));
map.addPopup(new OpenLayers.Popup.FramedCloud("test",lonlat,null,
"<div style='font-family:Arial,sans-serif;font-size:0.8em;'>"+first_result.name+"<div>",
anchor=null,true,null));
};
Когда я вызываю 3 вызова «найти» в пакете (как часть моего JS), я получаю карту только с 3-м пионтом. Когда я вызываю их через консоль Chrome (одну за другой), я получаю карту со всеми тремя точками на ней. Это call_back, который содержит свою среду? Если так, как я могу преодолеть это?
function onInit(){
g_waze_map.find('<%#Locations[2]%>','find_callback');
g_waze_map.find('<%#Locations[3]%>','find_callback');
g_waze_map.find('<%#Locations[5]%>','find_callback');
}