一、相关技术背景介绍
1、评价对象 AOI
AOI(Area of Interest)数据通常用于定义空间查询的范围。例如,在风景区商业开发程度评价中,需要获取风景区的 AOI 范围数据,并以此为基础检索范围内的 POI 数据。
2、数据处理流程
整体数据处理流程主要分为三个阶段:
- AOI 即空间查询面的构建。
- 基于 AOI 面的 POI 检索。
- 将两个图层进行数据叠加后渲染出图。
二、对 AOI 空间范围查询实践
本节重点介绍如何对 AOI 数据进行空间范围查询的实现,从查询目标的空间查询构建到空间样式创建,最后对整体成果进行出图。
1、空间查询构建
空间查询的构建主要包含三个环节:将字符串类型的 AOI 数据进行解析,坐标转换,以及构建完整的查询面。
/**
* - 将 AOI 字符串转换成 Polygon 对象
* @return
*/
public static Polygon convertAoi2Polygon(String aoistr) {
String [] AOI_Str_Array = aoistr.split(";");
// 获取 GeometryFactory 实例
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);
Coordinate[] coords = {};
if( AOI_Str_Array.length > 0) {
coords = new Coordinate[AOI_Str_Array.length];
}
//处理坐标
for (int i = 0; i < AOI_Str_Array.length; i++) {
String loc = AOI_Str_Array[i];
String [] latlon = loc.split(",");
double lng = Double.parseDouble(latlon[0]);
double lat = Double.parseDouble(latlon[1]);
[] gcj284 = CoordinateTransformUtil.gcj02towgs84(lng, lat);
coords[i] = (gcj284[], gcj284[]);
}
geometryFactory.createLinearRing(coords);
geometryFactory.createPolygon(shell, );
polygon.setSRID();
polygon;
}


