Basemap
用于创建一个新的地图对象,创建一个可以来自于Portalltem、已知的地图id、自定义的地图。这些地图可以从你发布的切片地图服务器上创建或者从第三方切片服务器上创建。
//引入
require(["esri/Basemap"], function(Basemap) { /* code goes here */ });
//通过portalItem创建
var basemap = new Basemap({
portalItem: {
id: "8dda0e7b5e2d4fafa80132d59122268c" // WGS84 Streets Vector webmap
}
});
//通过公认的id创建
Basemap.fromId("topo-vector");
//通过切片服务器创建
var basemap = new Basemap({
baseLayers: [
new WebTileLayer(...)
],
referenceLayers: [
new WebTileLayer(...)
],
});
MapView.constrains.lods属性在使用动态底图服务时必须被声明。设置此属性可以通过设置lods实现,或者用TileInfo类上的create()方法创建,这个方法用于创建一个新的TileInfo具有lods预设属性的实体。
//创建动态地图服务
var basemap = new Basemap({
baseLayers: [
new MapImageLayer({
//动态地图服务URL
url: "url to your dynamic MapServer",
title: "Basemap"
})
],
title: "basemap",
id: "basemap"
});
var map = new Map({
basemap: basemap
});
//默认设置创建TileInfo实例并将lods传递给MapView约束。
var view = new MapView({
container: "viewDiv",
map: map,
constraints: {
lods: TileInfo.create().lods
}
});
when()方法是指在地图加载完之后,可以basemap实例上被调用执行可运行程序的加载。
属性介绍
baseLayers:组成地图要素的切片图层的集合。类型为Collection<Layer>
declaredClass:类的名称。类型为Sting。
id:在引用基础地图时用来引用它的标识符。类型为Sting。
loaded:指示basemap实例是否已加载。类型为boolean。
loadError:当basemap实例加载出错的时候返回对象。类型Error
loadStatus:标识加载实例的状态。类型String。not-loaded:对象的资源尚未加载。loading:对象的资源正在加载。loaded:对象的资源加载完成。failed:对象的资源加载失败。
loadWaring:加载发生的警告列表。类型Objetct[]
portalItem:门户项目。类型为PortalItem
referenceLayers:用于显示标签的平铺参考层的集合。
spatialReference:基本地图的空间引用。
thumbnailUrl:指向表示基本地图的图像的URL。
title:basemap的标题。
简单案例
//创建底图实例
var basemap=new Basemap({
portalItem: {
id: "8dda0e7b5e2d4fafa80132d59122268c"
}
,
spatialReference:4326,
title: "basemap",
id: "basemap"
});
//添加底图到Map
const map = new Map({
basemap: basemap
});
const view = new MapView({
container: 'mapDivRef',
map: map,
});
//地图尚未加载完成时
console.log(basemap.loaded);
console.log(basemap.loadError);
console.log(basemap.loadStatus);
console.log(basemap.loadWarnings);
view.when(function(){
//view加载完成调用when()方法
console.log(basemap.loaded);
console.log(basemap.loadError);
console.log(basemap.loadStatus);
console.log(basemap.loadWarnings);
console.log(basemap.title);
console.log(basemap.id);
console.log(basemap.spatialReference);
});
方法预览
cancelLoad():取消如果地图实例的load()方法正在进行中。
clone():地图实例的深复制。
fromId():从一个已知的basemap ID创建一个新的basemap实例。
fromJSON():创建这个类的一个新实例,并使用ArcGIS平台中产品生成的JSON对象的值对其进行初始化。
isFulfilled():被用于验证创建的实例创建是否完成。
isRejected():被用于验证创建的实例是否被拒绝。
isResolved():被用于验证创建的实例是否被解析。
load():加载该类引用的资源,为异步操作。
loadAll():加载与basemap相关联的所有外部可加载资源。从4.9开始有loadAll()方法。
toJSON():将此类的实例转换为其ArcGIS门户JSON表示。
when():在创建类的实例后可以使用。
简单案例
var basemap=Basemap.fromId("topo-vector");
const map = new Map({
basemap: basemap
});
const view = new MapView({
container: 'mapDivRef',
map: map,
});
view.when(function(){
console.log(basemap.loaded);
console.log(basemap.loadError);
console.log(basemap.loadStatus);
console.log(basemap.loadWarnings);
// 注意版本有没有方法
//console.log(basemap.ifFulfilled());
console.log(basemap.isRejected());
console.log(basemap.isResolved());
});
basemap.load().catch(function(error){}).then(function(){
console.log("已加载");
});
//从4.9开始有loadAll()方法
//basemap.loadAll().catch(function(error){}).then(function(){
//console.log("全部加载");
//});
版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/basemap/464/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论