CesiumJS的Resource对象表示在Web上访问资源的请求,例如地形数据、KML文件或相对于CesiumJS源的图像。
Resource对象可以通过url来创建,比如:
var resource = new Cesium.Resource({
url: 'http://example.com/mydata.json'
});
这里我们创建了一个包含url属性的Resource对象。如果你想进行更复杂的操作,比如修改请求方法或者添加参数,可以使用参数对象的其他属性。例如:
var resource = new Cesium.Resource({
url: 'http://example.com/mydata.json',
headers: {
'Authorization': 'Bearer ' + token
},
queryParameters: {
'id': '1234',
'name': 'myname'
},
requestHeader: {
'Accept': 'application/json'
},
overrideMimeType: 'text/xml',
proxy: new Cesium.DefaultProxy('/proxy/')
});
在这个例子中:
对于一些常见的使用场景,Resource提供快捷方式。例如:
var mydata = Cesium.Resource.fromJson({
data: {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [0, 0]
},
properties: {
name: 'My Point'
}
},
overrideMimeType: 'application/json'
});
这个例子创建一个Resource对象,其内容是GeoJSON对象(这里为简化起见,我们只包含了一个点)。从示例中,我们可以看出通过fromJson方法,我们可以直接在内存中构建数据,而不需要从网络获取。
有了Resource对象,我们可以使用get、post、put或delete方法访问资源。例如:
resource.get().then(function(response) {
var data = JSON.parse(response);
console.log(data);
}). otherwise(function(error) {
console.log(error);
});
这里,get方法返回一个Promise,在响应到达时解析返回的数据(注意使用reject可以获取错误消息)。
如果相同的Resource对象需要多次访问,不必每次创建一个Resource对象。您可以改变属性并再次调用get、post、put或delete方法。
除了访问资源,Resource对象有两个用于下载资源的方法:下载和请求blob(二进制对象)。这两个方法都返回Promise对象。
resource.download('./mydata.json').then(function() {
console.log('Download Complete');
});
resource.requestBlob().then(function(blob) {
console.log(blob);
});
在这个示例中,download方法将请求的资源保存在本地文件系统中,然后输出Download Complete。requrstBlob方法将资源下载为blob对象。这对于文件上传很有用。
Resource模块提供了几个便捷的函数,帮助您处理数据或URI。
//将任何类型的数据编码为字符串URL
Cesium.Resource.getDataUri(data, mimeType);
//解析查询参数字符串
Cesium.Resource.parseQuery(queryString);
//创建查询参数字符串
Cesium.Resource.queryToObject(queryObject);
这里的示例代码演示了如何使用它们:
var uri = Cesium.Resource.getDataUri(someData, 'image/jpeg');
var params = Cesium.Resource.parseQuery('id=1234&name=myname');
console.log(params.id); //输出"1234"
var query = Cesium.Resource.queryToObject({
id: '1234',
name: 'myname'
});
console.log(queryString); //输出'id=1234&name=myname'
Resource对象是CesiumJS中访问外部资源和存储数据的重要工具。它处理和创建电子邮件和URL的不同格式,本文阐述了其主要功能,包括创建、访问和下载资源,以及数据编码工具。CesiumJS是可视化地理空间程序的有力框架,但它需要使用许多不同来源的数据构建它的场景,因此Resource对象是一个不可或缺的部分。