Você poderia fazer algo assim.
function findIdealPoints(data){
var i = 0;
while (i < data.length){
loadAspectWithinRange('aspect', data[i]['lat'], data[i]['long'], 10,
compareWithAspect);
i++;
}
Em vez de fazer uma chamada Ajax para cada ocorrência, envie o objeto de dados para sua chamada
loadAspectWithinRange('aspect',data,10,compareWithAspect)
Em seguida, na solicitação Ajax, envie a matriz de objetos para seu serviço e recupere os resultados de todos eles, em vez de um por um.
$.ajax({
url:"...",
data:{
attr1:'aspect',
points: data(here is the array retrieved from "getIdealData.php")
attr2: 10
},
success:function(data){
compareWithAspect(data)
}
})
No processamento do lado do servidor, construa uma matriz de objetos para todos os elementos no
getIdealData.php
pontos. Isso será melhor em vez de fazer um Ajax para cada elemento