Я бы порекомендовал решение для географии, а также попытался бы использовать различные js-классы для улучшения удобства обслуживания и читабельности.Не делайте все в одном и том же объекте, создайте свой собственный всплывающий объект, который наследует или использует OpenLayers.Popup.Anchored или что-то в этом роде, и выполняйте вызов сервера Ajax оттуда.Таким образом, вы не будете загромождать свой другой код этим.Также облегчает повторное использование и замену при необходимости.
Я хотел бы получить что-то вроде этого (без проверки!):
mynamespace.mypopup = function(o) {
var size = new OpenLayer.Size(100, 70);
var icon = new OpenLayers.Icon(); // Fill it
var popup = new OpenLayers.Popup.Anchored(o.id, o.lonlat, size, getContent(), icon, false, null);
var getContent = function() {
// ajax call
// return a string
}
return popup;
}
в файле с именем "mypopup.js"
и позвоните по номеру:
var popup = new mynamespace.mypopup({id: 'whatever', lonlat: myLonLat});