geoserver图层属性查询及查询结果转换为arcgis js api能使用的格式

简介: 一个项目使用了ArcGIS JS API开发GIS展示层,但GIS服务使用了Geoserver,这时加载Geoserver数据和查询数据就和之前完全不一样了,以下介绍下我使用ArcGIS JS API+Geoserver开发过程中解决Geoserver图层属性查询的一个方案。

一个项目使用了ArcGIS JS API开发GIS展示层,但GIS服务使用了Geoserver,这时加载Geoserver数据和查询数据就和之前完全不一样了,以下介绍下我使用ArcGIS JS API+Geoserver开发过程中解决Geoserver图层属性查询的一个方案。

 

以Geoserver中发布的图层 city 为例。我现在要查询city图层中ID=53090000000000的对象,并使用ArcGIS JS API将查询到的结果显示出来。

 

首先找到查询的实际地址:

http://localhost:9999/geoserver/换成自自己工作空间名称/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=换成自自己工作空间名称:city&maxFeatures=50&outputFormat=application/json&CQL_FILTER=ID=53090000000000

先不要管这个地址哪儿来的,对应上面需要改的地方改下试试先。如果不对,可以参考以下做法修正部分参数:

第一步:

 

第二步:

照这样自己抓取看下,最后把抓取地址中的输出类型改为json就可以了。参考上面给出的示例地址。

 

做好上面的准备过后,就是请求了。构建好url地址,使用ajax的post请求即可,如果出现跨域问题可以通过jsonp或者后台写个httppost程序来转换下。

我们关注的是请求结果,如下图:

得到的结果包含了字段属性和图形坐标,这里可以使用json2.js完成对象到json的转换。这里重要的介绍下图形的重新绘制,我们关注的是features下的coordinates。

参考ArcGIS JS API中创建面的方法,如下图:

于是我这样写:

var json = {
    "rings": points,
    "spatialReference": { "wkid": 4326 }
};
var polygon = new esri.geometry.Polygon(json);

结果居然是错误的,中间经历了很多的尝试,后来找到准确的写法是这样的:

var feature = features[i];
var points = [];
for (var n = 0; n < feature.geometry.coordinates.length; n++) {
    points.push(feature.geometry.coordinates[n][0]);
}
var json = {
    "rings": points,
    "spatialReference": { "wkid": 4326 }
};
var polygon = new esri.geometry.Polygon(json);

只能说geoserver存储图形的坐标方式和arcserver是不一样的吧,这里是一个坑,希望对同样掉入这个坑的人有点帮助。

相关文章
|
28天前
|
JSON 自然语言处理 搜索推荐
银行卡归属地及开户行查询API查询实战指南
银行卡归属地及开户行查询API,通过卡号快速识别发卡行、开户地及卡种信息,支持全国1500+银行,数据实时更新。提供结构化数据返回,广泛应用于支付、风控、用户画像等场景,助力金融系统高效、安全运行。
375 5
|
4天前
|
人工智能 JSON API
淘宝/天猫:使用物流查询API实时显示包裹位置,减少客服咨询量
在电商竞争激烈的环境下,淘宝、天猫通过集成物流查询API,实现实时追踪包裹位置,显著减少用户咨询量。本文解析其原理、实现步骤与效益,展示如何以技术手段提升用户体验、降低客服压力,助力平台高效运营。(238字)
40 0
|
1月前
|
JSON Unix API
1688查询榜单列表API详解
1688榜单API提供实时热销、新品等商品榜单数据,支持20+品类及40+字段筛选,适用于选品与市场分析。每小时更新,响应迅速。提供Python调用示例,开发者可快速集成。
|
13天前
|
监控 安全 算法
快递查询API|一次接通2700+快递服务商的物流轨迹
在物流数字化的浪潮中,企业对接多家快递服务商的痛点日益凸显:每新增一家合作物流商,技术团队就要投入 5-7 个工作日进行接口开发,不同服务商的接口协议差异导致系统稳定性差,物流轨迹数据分散在各平台难以整合分析。快递鸟快递查询 API 通过标准化接口架构,创新性地实现了 2700 + 国内外快递服务商的一键接入,将传统模式下的周级开发周期压缩至小时级,彻底重构了物流数据对接的技术范式。
41 0
|
15天前
|
人工智能 API
阿里云百炼API-KEY在哪查询?如何获取阿里云AI百炼大模型的API-KEY?
阿里云百炼是阿里云推出的AI大模型平台,用户可通过其管理控制台获取API-KEY。需先开通百炼平台及大模型服务,即可创建并复制API-KEY。目前平台提供千万tokens免费额度,详细操作流程可参考官方指引。
|
22天前
|
JSON 监控 API
Minecraft(我的世界)服务器信息查询免费API接口详解
本文介绍接口盒子提供的免费Minecraft服务器查询API,涵盖参数说明、返回解析及PHP/Python调用示例,助您快速集成服务器监控功能。
|
28天前
|
数据采集 自然语言处理 API
信息一键收集:新闻查询API的核心功能和技术实现
在信息爆炸时代,新闻查询API通过程序化访问聚合新闻数据源,提供实时、结构化的新闻内容服务,助力开发者构建智能化信息解决方案。
159 2
|
1月前
|
JSON API 定位技术
公交线路站点查询API接口详解:免费获取全国公交路线数据
公交线路站点查询API提供全国公交数据,支持线路编号查询路线、站点、票价及运营时间。具备GET/POST请求方式,免费调用,适用于公交App、智慧交通及地图导航等场景。
|
13天前
|
JSON 监控 API
淘宝/天猫:使用订单查询API实时追踪包裹状态,自动推送物流通知至用户
在淘宝/天猫平台,通过集成订单查询API实现物流状态实时监控,结合定时轮询与自动推送通知功能,可有效减少用户频繁刷新页面,提升购物体验。本文详解API调用原理、状态判断及Python代码实现,助力开发者构建高效、智能的物流通知系统。
54 0
|
1月前
|
JSON Prometheus Cloud Native
全国空气质量查询API:让空气质量数据成为智慧生活的基石(含Python接入指南)
本文介绍空气质量数据服务的技术价值与接口架构,涵盖全国监测网络现状、API功能及技术指标,提供基于Python的快速接入示例,并展示在环境监测、智慧城市等场景中的应用潜力。
137 0