typescript中的Openlayers javascript库
我们正在使用typescript进行一个项目。这是第一个使用typescript的项目。 在这个项目中,我们需要连接到WFS服务器,这会将GML返回给我们。现在要解析GML,我们考虑使用OpenLayers javascript库。我知道Openlayers有一个明确类型的版本,但是GML解析还没有准备好 因此,我们尝试删除javascript文件。但我认为我们遗漏了一些东西,因为我们得到了一个错误:Openlayers是未定义的 这是我们的代码:typescript中的Openlayers javascript库,javascript,typescript,openlayers,Javascript,Typescript,Openlayers,我们正在使用typescript进行一个项目。这是第一个使用typescript的项目。 在这个项目中,我们需要连接到WFS服务器,这会将GML返回给我们。现在要解析GML,我们考虑使用OpenLayers javascript库。我知道Openlayers有一个明确类型的版本,但是GML解析还没有准备好 因此,我们尝试删除javascript文件。但我认为我们遗漏了一些东西,因为我们得到了一个错误:Openlayers是未定义的 这是我们的代码: module PP.Data { de
module PP.Data {
declare var OpenLayers: any;
export class WebRequest {
public GetGML(url: string): XMLDocument {
var retour: XMLDocument;
var _this = this;
$.ajax({
url: url,
type: 'GET',
crossDomain: true,
cache: false,
async: false,
dataType: 'xml'
}).done(function (data) {
var format = new OpenLayers.Format.GML();
retour = format.read(data);
});
return retour;
}
}
}
因此,当我们尝试创建GML实例时,错误就开始了
有什么想法吗
谢谢
OpenLayers未定义
确保包含OpenLayers,例如在尝试从typescript使用它之前使用脚本标记
与错误无关,但已注意到
实际上,这里返回的是未定义的,因为retour在返回之前没有分配
.done(function (data) {
var format = new OpenLayers.Format.GML();
retour = format.read(data);
});
return retour;
您应该返回承诺,即.done函数的返回值或回调。它需要一路异步。我对typescript了解不多,但您是否应该像您在外部声明的那样在GetGML done函数中引用OpenLayers?typescript显示了一个错误。大概是的。这将与上下文、这个等有关,但我对typescript了解不够,无法调试。行var format=new OpenLayers.format.GML;就其本身而言当然是好的。我已经将Openlayers.js添加到html页面。在js之后,我添加了我的文件: