FOSS4G 2017 KYOTO.KANSAI The OSGeo foundation new initiatives and challengesOSgeo Japan
?
Open Source Software, Open Data and Open Standards are the three vital pillars for facilitating implementation/deployment of interoperable, scalable and sustainable geospatial infrastructure. Over the last decade, Free and Open Source Solutions for Geoinformatics (FOSS4G) has supported a variety of societal needs and gained worldwide acceptance. The Open Source Geospatial Foundation (OSGeo) has been spearheading the collaborative development of geospatial software and promote its widespread use through several initiatives and outreach activities.
This talk present about the evolution of OSGeo Foundation, its current accomplishments and avenues for future improvements. Some recent developments and opportunities for leveraging the OSGeo ecosystem for geospatial innovation will be discussed.
代表的なオープンソース空間データサーバの1つであるGeoServerは、多くの強力な機能を提供します。 特に、さまざまなデータソースからの空間データへの接続とパブリッシングをサポートします。 GeoServerはOpen Geospatial Consortiumによって地理空間フィーチャデータを要求するために設定された標準プロトコルであるWeb Feature Service(WFS)もサポートしています。 しかしながら、GeoServerは2次元ジオメトリのための関数しか提供しないため、3D空間データを処理する関数はほとんどありません。 GeoServerの重要なコンポーネントであるJTS Topology Suiteは3D空間操作をサポートしていないため、ソリッドジオメトリもサポートしていません。 この講演では、3D空間データを扱うために私たちが実装したGeoServerの拡張モジュールを紹介します。
GeoServer, one of the representative open source spatial data servers, provides many powerful features. In particular, it supports connecting to and publishing spatial data from a variety of data sources. GeoServer also supports Web Feature Service (WFS), which is a standard protocol established by the Open Geospatial Consortium to request geospatial feature data. However, GeoServer provides functions only for two-dimensional geometry, so it provides few functions for handling 3D spatial data. Because JTS Topology Suite, which is an important component of GeoServer, does not support 3D spatial operations, it also does not support solid geometries. In this talk, I will introduce extension modules of GeoServer that we have implemented to handle 3D spatial data.
10. ロジックをSQLで表記
-- コアエリア(1ha以上の樹林を抽出)
Select * from hn_base
where vegetation = 'forest'
and area_m2 > 20000;
-- コアエリアからのバッファ
drop table if exists hn_shijyukara_cab;
create table hn_shijyukara_cab as
with hn_shijyukara_cab_tmp as
(select st_union(st_buffer(st_simplify(st_transform(the_geom,32654),10), 400)) buff from hn_shijyukara_ca)
select
st_transform(buff, 4326) the_geom,
st_transform(buff, 3857) the_geom_webmercator,
st_area(buff) area_m2
from hn_shijyukara_cab_tmp;
alter table hn_shijyukara_cab add cartodb_id serial;
select cdb_cartodbfytable('carto','hn_shijyukara_cab');
-- HQB
drop table if exists hn_shijyukara_hqb;
create table hn_shijyukara_hqb as
with hn_shijyukara_hqb_tmp2 as
(with hn_shijyukara_hqb_tmp as
(select cartodb_id, st_transform(st_buffer(st_simplify(st_transform(the_geom,32654),10), 200), 4326) the_geom
from hn_shijyukara_ca)
select cartodb_id, the_geom from hn_shijyukara_hqb_tmp
where hn_shijyukara_hqb_tmp.cartodb_id in
(select t1.cartodb_id from hn_shijyukara_hqb_tmp t1, hn_base t2
where st_intersects(t1.the_geom, t2.the_geom)
group by t1.cartodb_id
having sum(st_area(st_transform(t2.the_geom,32654))) > 40000
and max(st_area(st_transform(t2.the_geom,32654))) > 14500))
select st_union(the_geom) the_geom
from hn_shijyukara_hqb_tmp2;
alter table hn_shijyukara_hqb add the_geom_webmercator geometry;
update hn_shijyukara_hqb set the_geom_webmercator = st_transform(the_geom, 3857);
alter table hn_shijyukara_hqb add area_m2 float4;
update hn_shijyukara_hqb set area_m2 = st_area(st_transform(the_geom, 32654));
alter table hn_shijyukara_hqb add cartodb_id serial;
select cdb_cartodbfytable('carto','hn_shijyukara_hqb');
-- PSC
drop table if exists hn_shijyukara_psc;
create table hn_shijyukara_psc as
with hn_shijyukara_psc_tmp as
(select st_intersection(t1.the_geom, t2.the_geom) the_geom
from hn_base t1, hn_shijyukara_hqb t2
where t1.vegetation='forest' and t1.area_m2 < 10000
and st_intersects (t1.the_geom, t2.the_geom))
select the_geom, st_transform(the_geom, 3857) the_geom_webmercator, st_area(st_transform(the_geom, 32654)) area_m2
from hn_shijyukara_psc_tmp;
alter table hn_shijyukara_psc add cartodb_id serial;
select cdb_cartodbfytable('carto','hn_shijyukara_psc');
-- PSB
drop table if exists hn_shijyukara_psb;
create table hn_shijyukara_psb as
with hn_shijyukara_psb_tmp as
(select st_union(st_buffer(st_simplify(st_transform(the_geom, 32654), 10), 200)) buff from hn_shijyukara_psc)
select st_transform(buff, 4326) the_geom,
st_transform(buff, 3857) the_geom_webmercator, st_area(buff) area_m2
from hn_shijyukara_psb_tmp;
alter table hn_shijyukara_psb add cartodb_id serial;