最新要闻
- 周四周五举行!郑州助企用工专场招聘会提供万余就业岗位
- 王俊凯是农历多少_王俊凯农历生日是几月几日
- 2023年4月票房已破20亿:2部日本电影出彩 《灌篮高手》情怀刷满
- 重磅微视频:读书之美 世界聚焦
- 全球微头条丨如何判断你整体的学业运势
- 天天热推荐:不会主动告知风险!ChatGPT生成代码被指并不安全
- 教练妻子等丈夫下班 教7岁女儿在驾校学车 导致驾校停业整顿|全球要闻
- 环球新资讯:vivo Y系列首款曲面屏!vivo Y78+开启预售:1599元起
- 网红购买500万日元NFT暴跌近9成 吐槽真实网络诈骗
- 成都武侯祠门票需要提前预约吗
- 为亲朋好友非法牟利罪的犯罪数额有什么限制
- 硬刚苹果、高通?消息称ARM要自己搞先进芯片:进军手机、PC
- 180°可躺倒设计+活水杀菌!米家无线洗地机2图赏 焦点热门
- 理想汽车L系列喜迎4.4大版本更新:增加哨兵模式 全球速读
- 全球简讯:你觉得调休日上班效率有区别吗?
- 199元就能买到这么顶的1/6手办?|焦点精选
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Geotools基本增删改查Feature-天天精选
(资料图片)
postgis依赖
org.geotools gt-main 27.2 org.geotools gt-jdbc-postgis 27.2
创建连接JDBCDataStore
Map params = Map.of( PostgisNGDataStoreFactory.HOST.key, host, PostgisNGDataStoreFactory.PORT.key, port, PostgisNGDataStoreFactory.DATABASE.key, database, PostgisNGDataStoreFactory.SCHEMA.key, schema, PostgisNGDataStoreFactory.USER.key, user, PostgisNGDataStoreFactory.PASSWD.key, passwd, PostgisNGDataStoreFactory.DBTYPE.key, dbtype);JDBCDataStore jdbcDataStore = (JDBCDataStore)DataStoreFinder.getDataStore(params);
JDBCDataStore连接参数
Parameter | Description |
---|---|
dbtype | Must be the string postgis |
host | Machine name or IP address to connect to |
port | Port number to connect to, default 5432 |
schema | The database schema to access |
database | The database to connect to |
user | User name |
passwd | Password |
loose bbox | Flag controlling loose bbox comparisons, default is true |
preparedStatements | Flag controlling whether prepared statements are used, default is false |
encode functions | Flag controlling if some common functions can be encoded into their SQL equivalent |
连接池参数
Parameter | Description |
---|---|
max connections | Maximum number of connection the pool will hold at any time, default is 10 |
min connections | Minimum number of connection the pool will hold at any time, default is 1 |
connection timeout | Maximum number of second the pool will wait when trying to obtain a connection, default is 20 seconds |
validate connections | Flag controlling if the pool should validate connections when a new connection is obtained |
Max open prepared statements | Maximum number of prepared statements kept open and cached for each connection in the pool. Set to 0 to have unbounded caching, -1 to disable |
Test while idle | Periodically test if the connections are still valid also while idle in the pool |
Time between evictor runs | Number of seconds between idle object evictor runs. The default value is 300 seconds. |
Min evictable time | Number of seconds a connection needs to stay idle before the evictor starts to consider closing it |
Evictor tests per run | Number of connections checked by the idle connection evictor for each of its runs. The default value is 3 connections. |
过滤器-Filter
使用过滤器来定义要对其进行操作的Feature集合。过滤器也可以组合成一个操作集合使用。简单说,过滤器相当于SQL语句的WHERE子句中存在的信息。Filter有多个子类,实现了许多类型的过滤器,包括简单的属性比较和空间查询。
// 普通字段FilterFactory ff = CommonFactoryFinder.getFilterFactory();/** * field 字段名 * value 条件值 * geometry 条件几何体 * * * matchCase 是否区分大小写,默认true-区分 * MatchAction(实现MultiValuedFilter的会有),匹配逻辑 * MatchAction.ANY-任何一个满足,默认值 * MatchAction.ALL-全部满足 * MatchAction.ONE-只有一个满足 * */PropertyIsEqualTo equal = ff.equal(ff.property(field), ff.literal(value), true);//等于PropertyIsLike like = ff.like(ff.property(field), "%keywords%");//模糊匹配PropertyIsNotEqualTo notEqualTo = ff.notEqual(ff.property(field), ff.literal(value));//不等于PropertyIsNull aNull = ff.isNull(ff.property(field));//nullPropertyIsGreaterThan greater = ff.greater(ff.property(field), ff.literal(value));// 大于PropertyIsGreaterThanOrEqualTo greaterOrEqual = ff.greaterOrEqual(ff.property(field), ff.literal(value));// 大于等于PropertyIsLessThan less = ff.less(ff.property(field), ff.literal(value));//小于PropertyIsLessThanOrEqualTo lessOrEqual = ff.lessOrEqual(ff.property(field), ff.literal(value));//小于等于PropertyIsBetween between = ff.between(ff.property(field), ff.literal(value), ff.literal(value));//在...之间During during = ff.during(ff.property(field), ff.literal(value));//在时间期间Before before = ff.before(ff.property(field), ff.literal(value));//在时间之前After after = ff.after(ff.property(field), ff.literal(value));//在时间之后// Geometry字段FilterFactory2 ff2 = CommonFactoryFinder.getFilterFactory2();Beyond beyond = ff2.beyond(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry), 100.0, Units.METRE.name);// 图层几何字段超出给定几何100米距离的Contains contains = ff2.contains(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 图层几何字段包含给定几何Within within = ff2.within(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 图层几何字段被给定几何包含Intersects intersects = ff2.intersects(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 图层几何字段与给定几何相交Disjoint disjoint = ff2.disjoint(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 图层几何字段与给定几何不相交Touches touches = ff2.touches(ff2.property(featureSource.schema.geometryDescriptor.localName), ff2.literal(geometry));// 图层几何字段与给定几何相切// filter集合的逻辑关系,and并,or或,not非And and = ff.and(List.of(equal,like,beyond));//Or or = ff.or(List.of(notEqualTo,greater,contains));Not not = ff.not(during);// Function的实现类具体实现函数,name-函数名,例如:min,strReplace,toWKTFunction function = ff.function(name,expr1,exprN);PropertyName property = ff.property(field);Literal v = ff.literal(value);Function min = ff.function("min", property, v);PropertyName property = ff.property(field);Literal search = ff.literal("search");Literal replace = ff.literal("replace");Literal all = ff.literal( true );Function replace = ff.function("strReplace", new Expression[]{property,search,replace,all});PropertyName property = ff.property(featureSource.schema.geometryDescriptor.localName);Function toWKT = ff.function("toWKT", property);
查询
/** * tableName 表名 * filter 过滤器 * List propNames 字段名列表 * * startIndex 起始位 * maxFeatures 最大条数 * sortField 排序字段名 * */ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);//返回字段列List propertyNames = propNames.stream().map(ff::property).collect(Collectors.toList());Query query = new Query(tableName,filter,propertyNames);int count = featureSource.getCount(query);//计数// 分页,倒序query.setStartIndex(startIndex);query.setMaxFeatures(maxFeatures);query.setSortBy(new SortByImpl(ff.property(sortField), SortOrder.DESCENDING));ContentFeatureCollection collection = featureSource.getFeatures(query);SimpleFeatureIterator iterator = collection.features();// SimpleFeatureIterator必须关闭,否则会造成内存泄漏iterator.close();
新增
/*** tableName 图层名* fieldName1 字段名* fieldValue1 字段值**/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource; // write access!SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(store.getSchema());featureBuilder.set(fieldName1,fieldValue1);featureBuilder.set(fieldNameN,fieldValueN);SimpleFeature feature = featureBuilder.buildFeature(null);ListFeatureCollection featureCollection = new ListFeatureCollection(store.getSchema(), List.of(feature));List addFeatures = store.addFeatures(featureCollection);
删除
/**** typeName 图层名* fliter 过滤条件**/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource; // write access!store.removeFeatures(filter);
修改
/*** * typeName 图层名* names 修改字段名数组* values 修改值数组* fliter 过滤条件* names和values顺序保持一致*/ContentFeatureSource featureSource = (ContentFeatureSource) jdbcDataStore.getFeatureSource(tableName);SimpleFeatureStore store = (SimpleFeatureStore)featureSource; // write access!store.modifyFeature(names, values, filter)
关键词:
世界焦点!kafka设计理念解析
Geotools基本增删改查Feature-天天精选
周四周五举行!郑州助企用工专场招聘会提供万余就业岗位
王俊凯是农历多少_王俊凯农历生日是几月几日
2023年4月票房已破20亿:2部日本电影出彩 《灌篮高手》情怀刷满
重磅微视频:读书之美 世界聚焦
Matter 与ZigBee、蓝牙、Wi-Fi的关系_环球新视野
世界速递!俄罗斯与联合国将磋商黑海港口农产品外运协议前景
全球微头条丨如何判断你整体的学业运势
天天热推荐:不会主动告知风险!ChatGPT生成代码被指并不安全
教练妻子等丈夫下班 教7岁女儿在驾校学车 导致驾校停业整顿|全球要闻
环球新资讯:vivo Y系列首款曲面屏!vivo Y78+开启预售:1599元起
网红购买500万日元NFT暴跌近9成 吐槽真实网络诈骗
成都武侯祠门票需要提前预约吗
ASP.NET Core MVC 从入门到精通之Razor语法 当前观点
焦点速看:05 第一个c函数
为亲朋好友非法牟利罪的犯罪数额有什么限制
【财经分析】TCL科技扣非净利巨亏27亿创历史新低 比2021年下滑121亿元 全球报道
硬刚苹果、高通?消息称ARM要自己搞先进芯片:进军手机、PC
180°可躺倒设计+活水杀菌!米家无线洗地机2图赏 焦点热门
理想汽车L系列喜迎4.4大版本更新:增加哨兵模式 全球速读
全球简讯:你觉得调休日上班效率有区别吗?
提高开发生产力的4大敲门砖_当前观点
JavaScript 使用 splice 方法删除数组元素可能导致的问题
199元就能买到这么顶的1/6手办?|焦点精选
多只债券基金遭遇大额赎回 机构:债市或维持震荡格局
张超文会长与中国医药报社总编辑王春梅交流座谈-天天热议
RTX 4070卖不动?NV反击:186W下性能2倍于272W功耗3070 Ti显卡-天天热头条
热消息:Vue3 +element-plus+ wangEditor 富文本编辑器+前端七牛云上传
《Redis设计与实现》读书笔记 焦点简讯
2023年团体程序设计天梯赛 题解
环球观天下!并发编程(1)-线程与锁
前沿资讯!性能测试工具Locust和JMeter比较-及相关书籍下载
滚动:新金路(000510.SZ):提请股东大会授权董事局办理以简易程序向特定对象发行股票
英足总杯丨马赫雷斯“戴帽”,曼城挺进决赛|精选
让老外爱上“砍一刀”!拼多多Temu英国站已正式上线 天天亮点
每日播报!圆球停在斜坡顶端 网友称物理学不存在了 体彩中心:可能是天气原因
美国多个州要求召回韩国汽车:缺乏基本的防盗装置 危及公共安全
环球快消息!比亚迪百万豪车!仰望U8开车第一视角曝光:马路都感觉变窄了
蛋蛋面膜真的能去皱纹吗_蛋蛋面膜
「学习笔记」重修 FHQ-treap
Godot 4.0 设置应用程序图标、项目图标
Springboot yml配置参数加密 ,jasypt自定义解密器|当前简讯
国家能源局:截至3月底全国累计发电装机容量约26.2亿千瓦 同比增长9.1%
亚香股份: 2022年年度报告摘要
全球速读:劳斯莱斯不让进展台 小姐姐直接买了仰望U8、仰望U9两款车
【时快讯】广州街头大众CC变道不成 倒车怒撞奔驰E 网友直呼太恶劣
华为宣布开放5G网络能力 自家5.5G比5G快10倍|焦点速读
什么是期货对冲交易 全球独家
每日观点:歌词那些遗憾留在心底_心中的遗憾歌词
人机识别技术再升级,AIGC为验证码带来万亿种新变化_环球关注
从热爱到深耕,全国Top10开源软件出品人手把手教你如何做开源 微头条
当前观察:今日沈阳老凤祥黄金价格查询(2023年4月23日)
全球快播:提车时大风吹倒墙壁新车被砸 男子:4S店只修不换不退
【当前独家】抖音推出种草产品有柿App 由头条搜索升级而来
体彩开奖球停在斜坡不下滚遭质疑是什么情况
观察:厦门国际银行助力企业赴澳发行首笔“深合债”
詹姆斯:我职业生涯中和很多人有过对决 所以我不想谈狄龙 焦点快播
重返韩国!2023《英雄联盟》S13全球总决赛10月开战:赛程抢先看-全球快看
穿一次扔了都不亏!阿里工厂店大促:船袜6毛4一双起
全球报道:傅索安巴甫洛夫 傅索安怎么死的
优化数据呈现方式,分组双轴图是最佳选择|实时焦点
天天百事通!Transformer
无惧百万级并发,GaussDB(for Cassandra)让华为推送服务更快触达
使用手机在网状态查询 API 有效防止虚假注册的设计思路 全球简讯
视焦点讯!CAS的service参数验证
头条焦点:缬怎么读(缬字怎么读“缬”的读音是:[xié]【释义】)
上不上名校的区别,藏在李雪琴陈都灵的采访中,演员层次分出来了
环球简讯:奇瑞艾瑞泽STAR概念实车现身 网友:换个BBA的标 能卖百万
被泰国红牛告了 禁止生产销售!中国红牛回应:系网络水军抹黑-世界热点
【速看料】燕矶长江大桥北锚碇填芯混凝土大方量浇筑打破项目纪录
NGINX 备忘清单_开发速查表分享_时讯
孕产妇营养饮食大全 全球今头条
环球热门:雀巢丝滑拿铁咖啡15瓶到手59.8元:榛果、焦糖等多种口味
外观大变 增插混版!全新广汽本田雅阁将于5月底上市 全球快资讯
SpaceX星舰发射导流槽都没挖!马斯克:大意了 焦点短讯
4种口味任选 超划算:和路雪千层雪冰淇淋3.87元大促 _世界新要闻
有望下跌!国内油价五一节前调整 预计下调0.07元/升-微资讯
最新资讯:泡菜坛口用水密封的目的 泡菜坛口为什么要用水密封呢
华为云GaussDB支撑华为MetaERP系统全面替换
券商业绩大反攻!“券茅”获基金大幅加仓
15平方米公共绿地被居民私自硬化,路长、物业齐出手
具俊晔有孩子吗?具俊晔个人资料简介
超频冲上3.1GHz!索泰RTX 4070天启OC评测:远超公版的2K游戏最香显卡 天天新要闻
天天精选!公司要求开宝马卖车否则开除!员工回应:没人开宝马
黑猫警长一只耳的耳朵是怎么没的?黑猫警长中一只耳的娘舅是谁?
回家的诱惑宝莲身世第几集揭晓?回家的诱惑宝莲最后和谁在一起了?
张萌制片的作品有哪些?男制片人张萌简介
西海情歌的原唱是谁?西海情歌背后真实的故事
outlook怎么设置msn邮箱?outlook怎么撤回邮件?
第四范式联合创始人胡时伟:AIGC可能带来企业生产要素的变化
塞班s60v3还能用微信吗?塞班手机性能排行
三星笔记本r23plus黑屏怎么解决?三星笔记本r23plus配置
地下城与勇士刺客刷图厉害吗?地下城与勇士刺客转职什么好?
常用的 API 大全整理|全球热消息
【全球速看料】【Spring】三级缓存解决循环依赖问题
支付宝安全控件怎么升级?支付宝安全控件有什么用?
花汐与眠王12 看热讯
全球百事通!李楠评MINI冰淇淋事件:宝马公关写道歉信是真的蠢
【新要闻】专注和沉浸 是华为墨水平板赋予信息碎片化时代的“稀缺品”