ユーザーがマップ上にポリゴンを描画できるようにするアプリケーションがあり、JSTS ライブラリを使用して WFS レイヤーに対してポリゴンの交差を行い、ユーザーのポリゴンと交差するフィーチャを読み取ります。
エラーが返されるため、ユーザーが選択したポリゴンをマップに描画すると、エラーが発生します。
「未定義のプロパティ「getAxisOrientation」を読み取ることができません」
これは投影に関連する問題のようです (私は EPSG:27700 投影を使用しています)。
ユーザー ポリゴンが描画されたときのコードは次のとおりです。WFS 読み取りフィーチャ メソッドに投影を含める必要はありますか?
draw.on('drawend',function(e){
var extent = e.feature.getGeometry().getExtent();
var geomA = e.feature.getGeometry();
myDrawSource.clear();
mySelectionsSource.clear();
$.ajax('../../geoserver/wfs', {
type: 'GET',
data: {
service: 'WFS',
version: '1.1.0',
request: 'GetFeature',
typename: 'planning:flood_zone_2',
srsname: 'EPSG:27700',
bbox: extent.join(',') + ',EPSG:27700'
}
}).done(function(resp){
var formatWFS = new ol.format.WFS();
var featuresInExtent = formatWFS.readFeatures(resp);
var featuresOnDrawPoly = new Array();
for (var i=0;i<featuresInExtent.length;i++){
var geomB = featuresInExtent[i].getGeometry();
if (polyIntersectsPoly(geomA,geomB)===true){
featuresOnDrawPoly.push(featuresInExtent[i])
}
}
mySelectionsSource.addFeatures(featuresOnDrawPoly);
//here you may iterate and get the attributes of those falling within the draw polygon
for (var z=0;z<featuresOnDrawPoly.length;z++){
console.log("address is ======", featuresOnDrawPoly[z].get('definition'));
}
}).fail(function () {
alert("fail loading layer!!!")
});
})
これは私の proj4 プロジェクションの定義です。軸について読みましたが、この定義に問題があるのでしょうか?
proj4.defs("EPSG:27700", "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs");