[OSGeoJapan-discuss] [質問]WFSでの図形表示について

Ryousuke Wayama wayama @ isop.ne.jp
2014年 6月 9日 (月) 19:41:46 PDT


神谷さん、はじめまして。
和山と申します。

WFSの方は触ったことがないので、詳しい方に説明はお任せするとして、
似たようなことをやっていたのでご参考までに。
私の方はOpenlayers + PHP + PostGIS(GeoJSON)でやっておりました。
GeoJSONもVector形式でいろいろstyleを弄ることが可能です。
PostGISから直接geojsonを出力できるとpostgresqlのテーブルと
joinしたりもでき、柔軟なデータ形成が可能となるのでお勧めです。

以下はサンプルコードになります。

■javascriptレイヤ設定部分
var url="/getGeoJson.php?PrefCd=01"
var geojson_format = new OpenLayers.Format.GeoJSON();
$.getJSON(url, "", function(data, textStatus, jqXHR) {
	var layer = new OpenLayers.Layer.Vector(layer_name, layer_stylemap);
	$.each(data["features"], function(i, val) {
		var geometry = geojson_format.parseGeometry(val["geometry"]);
		geometry.transform(
			new OpenLayers.Projection("EPSG:4326"),
			map.getProjectionObject()
		);
		var feature = new OpenLayers.Feature.Vector(geometry, {
			id  : val["properties"]["f1"],   //地域コード
			name: val["properties"]["f2"]    //地域名
		});
		layer.addFeatures([feature]);
	});
	map.addLayer(layer);
});


■PHP&PostGIS設定
$sql="SELECT row_to_json(fc) as geojson
		FROM (SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
		FROM (SELECT 'Feature' As type,
ST_AsGeoJSON(ST_SimplifyPreserveTopology(geom,0.00005))::json As geometry,
row_to_json((seq_no2::text, moji)) As properties
		FROM geotest WHERE ken=? order by moji) As f)  As fc";
echo $db->query($sql,array($_GET["PrefCd"]));

神谷 紳一郎 wrote:
> 皆様、はじめまして。
> 神谷と申します。
> 
> 現在、windowsローカル環境にて
> Openlayers + Geoserver + PostGIS で色々試しています。
> 
> PostGISのデータを以下のようにWFSで表示しようとしているのですが成功しません。
> 何が原因か、皆様のお知恵を貸していただきたいと思います。
> 
> ■javascriptレイヤ設定部分
>      OpenLayers.ProxyHost= "/cgi-bin/proxy.cgi?url=";
>      var layer = new OpenLayers.Layer.Vector(
>      	"WFSLayer",
>      	{
>      		strategies: [new OpenLayers.Strategy.BBOX()],
>      		protocol: new OpenLayers.Protocol.WFS(
>      			{
>      				url:
> "http://localhost:28080/geoserver/geotest/wfs",
>      				featureType: "geotest:test001",
> 				featureNS: "http://localhost:28080/geotest",
>      				geometryName: "geom"
>      			}
>      		)
>      	}
>      );
>      orverlayLayers.push(layer);
>      map.addLayers(orverlayLayers);
> 
> ■Geoserver設定
> ・Workspace
> Name:geotest
> 	NamespaceURI:http://localhost:28080/geotest
> ・Store
> 	Workspace:geotest
> 	DataSourceName:testDB
> 
> ・Layer
> 	Name:test001
> 	FeatureTypeDatail:gid(int)
> 			 geom(Point)
> 
> 
> ■その他
> ・Apacheポート:8080
>  Geoserverポート:28080
> ・WMSで表示することはできました。
>http://localhost:8080/cgi-bin/proxy.cgi は表示可能でした
>> http://localhost:8080/geoserver/wfs?service=wfs&version=1.1.0&request=GetCap
> abilities でレイヤ情報も閲覧可能でした
>  
> 
> 以上、よろしくお願いします。
> ============================================
>   株式会社新日本コンサルタント
>   地理空間情報部門 統合情報系グループ
>   神谷 紳一郎
>   E-mail kamiya @ shinnihon-cst.co.jp
>   TEL   076-436-2111
> ============================================
> 
> 
> 
> 
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> 

-- 
-------------------------------------
株式会社 ノーザンシステムサービス
第一システム事業部
専務執行役
和山 亮介
E-mail:wayama @ isop.ne.jp
URL:http://www.isop.ne.jp/nss/
〒020-0866
岩手県盛岡市本宮4丁目3-5 マップセンタービル2階
TEL:019-631-1781 FAX:019-631-1782
-------------------------------------


More information about the OSGeoJapan-discuss mailing list