ArcGIS中的服务类型

138 阅读1分钟

ArcGIS Server提供众多的服务类型,不同类型的服务通过各自的URL地址可以进行直接的判定。

首先让我们了解当前ArcGIS Maps SDK for JavaScript中支持的所有的服务类型,他们分别是:

  • MapServer
  • ImageServer
  • FeatureServer
  • SceneServer
  • StreamServer
  • VectorTileServer
  • 3DTilesServer (即将于 v4.29版本中推出)

ArcGIS支持将多种不同类型的服务启用OGC标准的服务模式,其中WMS是最为常见的一种OGC服务,ArcGIS Maps SDK for JavaScript中提供了专有的WMSLayer图层类型用于加载OGC WMS格式的数据服务,我们可以通过以下的代码快速判断一个服务的URL地址是否为WMS

function isArcGISWMS(url) {
	const lower = url.toLowerCase();

	const hasServices = lower.includes("/services/")
	const isMapServer = lower.includes("/mapserver/wmsserver")
	const isImageServer = lower.includes("/imageserver/wmsserver")
	const isWMSServer = lower.includes("/wmsserver")

	return hasServices && (isMapServer || isImageServer || isWMSServer)
}

除此之外,我们通常需要在开发过程中快速判断一个给定的服务URL地址是否为ArcGIS/GeoScene服务,如下的正则表达式可以为我们提供快速判断。

const arcgisServices = ['MapServer', 'ImageServer', 'FeatureServer', 'SceneServer', 'StreamServer', 'VectorTileServer', '3DTilesServer'];

const isArcGISReg = new RegExp(  
  `^((?:https?:)?\\/\\/\\S+?\\/rest\\/services\\/(.+?)\\/(${arcgisServices.join("|")}))(?:\\/(?:layers\\/)?(\\d+))?`,  
  "i",  
)


function isArcGISServiceUrl(url) {
	return !!isArcGISReg.test(url)
}

如果你觉得本文对你有些许启发,请持续关注我的公众号“戈伊星球”吧!