首页 / 浏览问题 / 移动GIS / 问题详情
imobile通过QueryService怎么进行范围查询
7EXP 2023年08月18日

版本imobile 11i,需求是在地图上涂鸦一个范围,查询图层里包含的记录集信息,这边已经得到了一个GeoRegion,如何通过ServiceQueryParameter把GeoRegion传进去

        QueryService service = new QueryService(m_strServer);
		ServiceQueryParameter parameter = new ServiceQueryParameter();
		parameter.setQueryMapName(m_edtMapName.getText().toString());
		parameter.setQueryServiceName(m_edtServerName.getText().toString());
		parameter.setQueryLayerName(m_edtLayerName.getText().toString());		
		
		//设置查询参数
		parameter.setQueryRecordStart(0);
		parameter.setQueryOption(QueryOption.GEOMETRY);
		parameter.setAttributeFilter("");

1个回答

您好,可以通过ServiceQueryParameter.setQueryBounds设置查询范围,该方法需要传入一个矩形实现设置查询的范围
3,430EXP 2023年08月18日

我这个不是传入一个矩形,是一个不规则的几何图形,该怎么传呢

Geometry geometry = mMapControl.getCurrentGeometry();
						if(geometry != null){
							GeoLine line = (GeoLine) geometry;
							GeoRegion region = new GeoRegion();
							for(int i=0;i<line.getPartCount();i++){
								if (line.getPart(i).getCount()>2) {
									region.addPart(line.getPart(i));
								}
							}
							mDrawnListener.drawnGeometry(region);
							mMapControl.deleteCurrentGeometry();
							mMapControl.setAction(Action.PAN)

暂不支持传入不规则多边形
...