- 浏览: 157248 次
- 性别:
- 来自: 西安
最新评论
-
jjxliu306:
windleos 写道jjxliu306 写道windleos ...
基于udig(开源GIS软件)二次开发(1) -
windleos:
jjxliu306 写道windleos 写道我下的eclip ...
基于udig(开源GIS软件)二次开发(1) -
jjxliu306:
windleos 写道我下的eclipse是4.4的,报错以后 ...
基于udig(开源GIS软件)二次开发(1) -
windleos:
我下的eclipse是4.4的,报错以后你说在udig.pro ...
基于udig(开源GIS软件)二次开发(1) -
jjxliu306:
liushuo_whu 写道如此好的博客竟然没有人顶啊谢谢
基于udig(开源GIS软件)二次开发(1)
文章列表
很多场景需要在地图上弹出一个tooltip或者popup之类的小窗口显示一些信息,最近简单做了一下封装,方便后续调用,代码如下:
/*
刘玉峰 jjxliu306@163.com
2018-05-05
*/
//点击后高亮下方的feature 并且弹出popup信息做展示
Popup = function(map ){
this.map = map ;
//添加一个popup的div
var div = document.createElement("div");
div.id = 'popup';
div. ...
基于某些原因我们需要将已经发布的图层重新打包为shp文件(数据源无法访问并且geoserver账号密码未知),这时候可以通过wfs服务来直接打包,事例:
http://{host}:{port}/geoserver/{workspace}/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={workspace}:{layername}&maxFeatures={maxFeatures}&outputFormat=SHAPE-ZIP
kml、geojson、gml等都 ...
之前在ol2中多图联动需要监听地图move事件,在事件中对其他地图进行位置更新来达到多图联动的效果,在ol4中可以直接通过多个地图共享一个view来达到多图联动的效果。
直接上代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>多图联动</title>
<link rel="stylesheet" href="ol.css" type="text/cs ...
上期我介绍了geotools读取shp文件的事例 (geotools系列1-读取shp文件),本次说明读取读取postgis里表数据的代码,依旧是读取数据打印出来展示。
1、环境,maven依赖等,参见上次 geotools系列1-读取shp文件 。
2、直接上java代码
package com.jjxliu.geotools.geotools_t1;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.geotools.data.Da ...
.shp文件是目前大家使用频率较高而且通用的一种格式。此篇主要说明geotools对shp文件的读取说明。
1、maven依赖,包含了postgis支持、epsg、和swing的支持,后续的文章基本都基于此
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0 ...
geoserver自带rest服务,可以发布shp,postgis等数据源。本文目前只说明怎么通过geoserver的rest发布postgis表数据。
1、maven添加geoserver-manager的依赖。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.5</version>
</dependency ...
基于雷劈网动态表单,采用java后台解析,验证。致敬雷劈网。http://formdesign.leipi.org/
项目托管在: https://gitee.com/jjxliu306/deform
功能实现:
雷劈网动态表单中原有的字段大部分均添加了一些修改,譬如非空(notnull),将name和title区分开,增加select选项的数据从填写的url中通过ajax获取等。详细如下:
1、 针对text,textarea,select,checkboxs,listctrl,datepicker(自增控件)添加notnull非空选项,勾选此选项后,后续数据 ...
本测试模拟pg_multixact,pg_xlog全部信息丢失的情况下,数据库完全起不来的情况下拉起数据库。本人血淋淋的教训,建议还是做好备库和增量备份。
一、初始化一个新的实例、创建数据库等。(因为当前系统用户并非postgres,因此我加了-U 来默认数据库超管用户postgres)
[lyf@centos250 pg9.6]$ initdb -D pg_db_test --encoding=UTF-8 --locale=C -U postgres
The files belonging to this database system will be owned ...
postgresql中提供了pitr作为增备的方案,在全量物理备份的基础上通过wal文件的备份来提供所有数据修改的记录,当需要还原的时候通过wal日志回放进行数据还原,还原后面在讲,本帖主要说明通过脚本和crontab定时任务来对数据库进行定期的自动全量备份和pitr增量备份,避免一个基础备份+长时间备份日志造成回滚或者还原话费大量的时间。
1、编写 base_backup.sh,提供定期全量基础备份。
该脚本执行过程中,会先执行pg_start_backup() 函数,然后开始进行整个$PGDATA目录压缩,完毕后执行 pg_stop_backup() 函数进行备份退出。所有 ...
postgres常用查询集锦
- 博客分类:
- postgresql
查询pg中每个表的统计量信息(在非精确的数据条数统计下适用):
-- 查询public的schema下所有表的统计条数(预估值)
SELECT relname, reltuples
FROM pg_class r JOIN pg_namespace n
ON (relnamespace = n.oid)
WHERE relkind = 'r' AND n.nspname = 'public';
postgis geometry转text,配套后面js使用
create or replace function geom_to_text(geometry) retu ...
java分割csv数据
- 博客分类:
- java
实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分割方法:
public static String[] split(String line) {
List<String> list = new ArrayList<>();
int start = 0;
int end = -1;
while(true) {
start = end + 1;
if(line. ...
postgis中多边形相交去重:
create or replace function difference(geom1 geometry , geom2 geometry ) returns geometry as
$$
declare
begin
if st_intersects(geom1 , geom2) then
return st_difference(geom1 , geom2);
else
return geom1 ;
end if;
end;
$$
language plpgsql ;
该函数判断第二个参数和第一个参数是否有 ...
pg提取序列号
- 博客分类:
- postgresql
select table_catalog , table_schema , table_name , column_name , column_default , regexp_matches(column_default , '^nextval[\(]([^\)]+)::regclass[\)]$')
from information_schema.columns where column_default like 'nextval%'
mark
后续会开始继续写点关于开源gis,udig等的东西,歪果仁在在udig的官网中已经有一些比较详细的二次开发资料,详见:
http://udig.github.io/docs/dev/
1、开机后按“e”,进入编辑选择,如图:
<!--[endif]-->
2、然后再按“e”,进入另外一个选择框:
<!--[endif]-->
3、选择第二项,然后在按“e”。
<!--[endif]-->
4、在后入输入“ single” , 记住有个空格,然后回车。又出现了下面的选择框。
<!--[endif]-->
5