2021-1-19工作记录
(一) supermap服务
1 rest服务
2 切片服务
2.1 TileSuperMapRest
(二) arcgis服务
1 rest服务
2 切片服务
2.1 XYZ
- 参数:
url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer'
this.baselayer.baseurl1=url+'/tile/{z}/{y}/{x}'
- html
<arc-tile-layer :id="'瓦片暗色'"
:url="baselayer.baseurl1"
:projection="'3857'"
:visible="true"
:zIndex="0"></arc-tile-layer>
- js
getmapServicInfo(url){//获取地图信息,获取瓦片信息
var self = this
this.$axios.get(url+'?f=json').then(res => {
console.log(res.data,'sssssssss')
}, err => {
this.$message.error("获取信息失败!");
return false;
})
}
3 要素服务
3.1 记录1
import $ from 'jquery'
//加载ArcGIS REST矢量要素服务地图
createFeature (serviceUrl, serviceLayer, esrijsonFormat, spatialReference) {
var that = this
//实例化矢量数据源对象(AJAX请求REST服务)
that.vectorSource = new VectorSource({
loader: function (extent, resolution, projection, success, failure) {
const url =
serviceUrl +
serviceLayer +
'/query/?f=json&' +
'returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry=' +
encodeURIComponent(
'{"xmin":' +
extent[0] +
',"ymin":' +
extent[1] +
',"xmax":' +
extent[2] +
',"ymax":' +
extent[3] +
',"spatialReference":{"wkid":102100}}'
) +
'&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*' +
'&outSR=102100';
$.ajax({
url: url,
dataType: 'jsonp',
success: function (response) {
if (response.error) {
alert(
response.error.message + '\n' + response.error.details.join('\n')
);
failure();
} else {
// 从请求结果中读取要素
const features = esrijsonFormat.readFeatures(response, {
// dataProjection: projection,
featureProjection: projection,
});
if (features.length > 0) {
//将要素设置到数据源中
that.vectorSource.addFeatures(features);
}
success(features);
}
},
error: failure,
});
},
strategy: tileStrategy(
createXYZ({
tileSize: 512,
})
),
});
},
initLayer () {
this.Layer = new VectorLayer({
zIndex: this.zIndex,
source: this.vectorSource,
});
return this.Layer
},
3.2 记录2 修改版
createSource(url,extent){
var self = this
var str = url+
'/query/?f=json' +
// '&returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry='+
// encodeURIComponent(
// '{"xmin":' +
// extent.xmin +
// ',"ymin":' +
// extent.ymin +
// ',"xmax":' +
// extent.xmax +
// ',"ymax":' +
// extent.ymax +
// ',"spatialReference":{"wkid":'+extent.spatialReference.wkid+'}}'
// ) +
// '&geometryType=esriGeometryEnvelope'
"&where="+
encodeURIComponent("1=1")
this.$axios.get(str).then(res => { let response=res.data
if (response.error) {
alert(
response.error.message + '\n' + response.error.details.join('\n')
);
// failure();
} else {
// 从请求结果中读取要素
const features = new EsriJSON().readFeatures(response);//ESRI的JSON数据格式解析类
if (features.length > 0) {
//将要素设置到数据源中
// self.map.removeLayer(self.Layer)
self.Layer.getSource().addFeatures(features);
let source=self.Layer.getSource()
this.$emit('getArcFeatureLayerInfo',self.Layer,source)
// self.map.getView().fit(source.getExtent())
// self.tempLayer.setSource(self.vectorSource)
// self.map.setLayers([self.Layer])
// self.map.addLayer(self.tempLayer)
}
}
}, err => {
this.$message.error("获取信息失败!");
return false;
})
},
getArcFeatureLayerInfo(layer,source){
this.$refs.OLmap.viewFit(source.getExtent())
},