0
geomの回答コードhttps://gis.stackexchange.com/questions/216792/is-there-an-easy-way-to-use-postgis-geojson-in-openlayers-3を使用して、PostGISレイヤーをOL3マップアプリケーションにロードしています。OpenLayers3でのgeoJSONパフォーマンスの向上
問題です:
new ol.layer.Image({
source: new ol.source.ImageVector({
source: new ol.source.Vector({
url: 'https://openlayers.org/en/v4.2.0/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
}),
style: new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new ol.style.Stroke({
color: '#319FD3',
width: 1
})
})
})
})
私の現在のコンストラクタは次のように探しています::
大(生)にGeoJSONデータセットでのレンダリングパフォーマンスはので、私はこのようなものを使用したいのですが最適ではありませんさらにol3Vector = function(options) {
var options = {
title: options.title,
visible: false,
geotable: options.geotable, // table name in PostGis-database
fields: options.fields, // field-names
where: options.where, // where-string passed to PostGis
source: new ol.source.Vector({
projection: "EPSG:4326",
attributions: [new ol.Attribution({
html: options.attribution
})],
strategy: ol.loadingstrategy.bbox, //load only data off the visible map
loader: function(extent, resolution, projection) {
var extent = ol.proj.transformExtent(extent, projection.getCode(), ol.proj.get('EPSG:4326').getCode());
$.ajax({
type: "GET",
dataType: "json",
url: "../map/php/get_geojson.php?" + // define path to the get_geojson.php script
"geotable=" + options.geotable +
"&fields=" + options.fields +
"&where=" + options.where +
"&bbox=" + extent.join(","),
context: this
}).done(function(data) {
var format = new ol.format.GeoJSON();
this.addFeatures(format.readFeatures(data, {
dataProjection: "EPSG:4326",
featureProjection: "EPSG:3857"
}));
});
}
}),
minResolution: options.minResolution,
maxResolution: options.maxResolution,
content: options.content,
symbology: options.symbology,
showLabels: options.showLabels,
label: options.label,
}
ol.layer.Vector.call(this, options);
};
ol.inherits(ol3Vector, ol.layer.Vector);
:
var landkreise = new ol3Vector({
title: "Landkreise in Niedersachsen", // name of the layer to show up in the layerswitcher
geotable: "tbl_landkreise_geb_f",
fields: "KRS,sumarea",
where: "KRS IS NOT NULL", // You can use all the PostgreSQL or PostGis features here
minResolution: 0.01,
maxResolution: 50000,
content: " ",
showLabels: false, // show labels on map
label: "KRS" // field used for labeling
});
baselayersArray=[OSM, landkreise];
baselayers.setLayers(new ol.Collection(baselayersArray));
landkreise.setVisible(true);
私のコンストラクタにol.layer.Image()(最初のコード例)ラッパーを含めるにはどうすればいいですか?あなたは次の操作を行うことができますように
は私がすることを試みたが、私の生成されたHTML文字列は、次のようになります?getgeojson.php geotable =未定義&フィールド=未定義&WHE re = undefined – Revo