shoopik, в цикле пробежаться по массиву не пробовали?
var data,//Текущие данные
new_data,//Новые данные
indexed_data={};//id=>item
data.forEach(function(item){
indexed_data[item.id]=item;
});
data=new_data.map(function(item){
var old_item=indexed_data[item.id]||false;
if(!old_item)//Is new item
return item;
['latitude','longitude'].forEach(function(key){//Update fields
if(item[key]!=old_item[key])
old_item[key]=item[key];
});
return old_item;
});