背景
项目上内网不能使用在线地图,提供arcgis地图服务,前端使用openlayers加载地图服务
主要参考资料:
感谢博主 Openlayers 加载ArcGIS Server切片服务(自定义切片方案)
arcgis在线切片地址
完整代码
var projection = ol.proj.get('EPSG:4326');
// 基础地图服务切片地址
var tileUrl = "http://xxx.xx.x.xx:xxxx/arcgis/rest/services/C731/BASEMAP_PLANT_2/MapServer/tile/{z}/{y}/{x}";
// 坐标原点
var origin = [-400.0, 399.9999999999998];
// 分辨率
var resolutions = [0.00237946100583028, 0.00118973050291514, 5.9486525145757E-4, 2.97432625728785E-4, 1.5228550437313792E-4, 7.614275218656896E-5, 3.807137609328448E-5, 1.903568804664224E-5, 9.51784402332112E-6, 4.75892201166056E-6];
//地图范围
var fullExtent = [112.01082395876296, 27.323495453608288, 114.13457604123721, 29.19250454639183];
var tileGrid = new ol.tilegrid.TileGrid({
tileSize: 256,
origin: origin,
extent: fullExtent,
resolutions: resolutions
});
// 瓦片数据源
var tileArcGISXYZ = new ol.source.XYZ({
tileGrid: tileGrid,
projection: projection,
url: tileUrl,
});
var olMap = new ol.Map({
target: 'viewDiv',
layers: [
// 瓦片图层
new ol.layer.Tile({
source: tileArcGISXYZ
})
],
view: new ol.View({
//初始化中心点坐标
center: [112.974445839231, 28.2099417959374],
resolutions: resolutions,
// 注意:此处指定缩放级别不能通过zoom来指定,指定了也无效,必须通过resolution来指定
resolution: 7.614275218656896E-5,
projection: projection,
extent: fullExtent
})
});
其他相关资料:
Openlayers之离线加载ArcGIS Server瓦片
openlayers加载动态ArcGIS服务
openlayers 加载ArcGIS 切片地图
OpenLayers调用arcgis server发布的地图服务
Arcgis Map Server 可以访问, 但是地图页面空白的一种解决方法
开源GIS(二)——openlayers加载Arcgis和geoserver在线离线切片