/** * 根据经度、纬度获取区域编码 * * @param lon 经度 * @param lat 纬度 * @return * @throws Exception long */ public static long getAreaAnalyzer(double lon, double lat) throws Exception { long areacode = -1; Geometry geo = new GeometryFactory().createPoint(new Coordinate(lon, lat)); List<?> areas = areaTree.query(geo.getEnvelopeInternal()); for (Object obj : areas) { AreaNode anode = (AreaNode) obj; if (anode.getPolygon().contains(geo)) { areacode = anode.getAreaCode(); break; } } return areacode; }