В вашем коде, если вы посмотрите на сигнатуру метода geraFotosObra
, вы увидите, что он принимает один int
параметр idObra
.
public String geraFotosObra (int idObra) throws Exception { ...
Тем не менее, когда вы вызываете метод в вашем jsp, вы передаете литерал объекта, содержащий функцию обратного вызова.
PainelEarthAjax.geraFotosObra({
callback : function(kmlString) { ...
Как я не вижу, как kmlгенерируется, разве возможно geraFotosObra
перегруженный метод?Кроме того, даже если бы он был сгенерирован, как есть, я не вижу, как когда-либо вызывается функция обратного вызова, которую вы передаете вместо идентификатора - почему, например, kmlString
будет результатом вызова geraFotosObra
?
// How is this called, what sets kmlString!?
callback : function(kmlString) {
var kmlObject = ge.parseKml(kmlString);
ge.getFeatures().appendChild(kmlObject);
}
Весь код, который вы опубликовали, немного запутан, так что извините, если я что-то пропустил ... Я думаю, вы возможно скопировали и вставили некоторый код из примера fetchKml и асинхронных обратных вызововэтот метод немного смутил вас.
В любом случае, исходя из того, что вы опубликовали, вы должны передать int
id
методу geraFotosObra
, получить строковый результат и затем проанализировать егоплагин.
Что-то вроде следующего имеет смысл.Замените функцию showPics
на следующую.
function showPics(ge) {
var kmlString = PainelEarthAjax.geraFotosObra(1); // or something?
var kmlObject = ge.parseKml(kmlString);
ge.getFeatures().appendChild(kmlObject);
}