私は1つのデータソースに対してbbox戦略を持っています。コードは次のようになります。Iパン/マップを移動し、このローダーを再度呼び出して、新しいボックスに収まる別の機能を追加した場合Openlayers bbox戦略
bbox: function newBboxFeatureSource(url, typename) {
return new ol.source.Vector({
loader: function (extent) {
let u = `${url}&TYPENAME=${typename}&bbox=${extent.join(",")}`;
$.ajax(u).then((response) => {
this.addFeatures(
geoJsonFormat.readFeatures(response)
);
});
},
strategy: ol.loadingstrategy.bbox
});
},
私は正常に動作しますが...。しかし、いくつかの新機能は古いものと全く同じであるため、重複が多数あります。 新しい機能を追加する前にまずthis.clear()
を使用してすべての機能をクリアしたかったのですが、このコマンドを追加するとローダーが常に実行されていて、 "不定ループ"が発生します。なぜなのかご存知ですか? this.clear()
を呼び出した後、新しい機能の読み込みを無効にするにはどうすればよいですか?
編集:
{ "タイプ": "れるFeatureCollection"、 "CRS":{ "タイプ": "名前"、 "プロパティ" の機能を備えた
私の応答は次のようになります。 ["タイプ": "フィーチャー"、 "プロパティー":{"ogc_fid": "2"、 {"name": "urn:ogc:def:crs:EPSG :: 3857"}}、 "フィーチャー" 「タイプ」:「マルチポリゴン」、「座標」: [[[...]]]}}、{"タイプ": "フィーチャー"、 "名前": "AL"}、 "properties":{"ogc_fid": "3"、 "name": "B"}、 "geometr Y ":{ "タイプ": "MultiPolygonの"、 "座標":[[[...]]]}} ...とがあったので、そう
にI座標を削除しましたあまりにも多くの。
私の機能は、MapServerのによって生成され、このようになります.MAPファイルで設定されています
LAYER
NAME "postcode_area_boundaries"
METADATA
"wfs_title" "Postcode area boundaries"
"wfs_srs" "EPSG:3857"
"wfs_enable_request" "*"
"wfs_getfeature_formatlist" "json"
"wfs_geomtype" "multipolygon"
"wfs_typename" "postcode_area_boundaries"
"wms_context_fid" "id"
"wfs_featureid" "id"
"gml_featureid" "id"
"gml_include_items" "id,postarea,wkb_geometry"
"gml_postarea_alias" "name"
"ows_featureid" "id"
"tinyows_table" "postcode_area_boundaries"
"tinyows_retrievable" "1"
"tinyows_include_items" "id,postarea,wkb_geometry"
END
TYPE POLYGON
STATUS ON
CONNECTIONTYPE POSTGIS
CONNECTION "..."
DATA "wkb_geometry FROM postcode_area_boundaries USING UNIQUE id"
DUMP TRUE
END
あなたの機能に固有のIDがありますか?ジオサーバまたは任意のサーバからユニークなIDを持っているかどうかをチェックする場合は、サーバ上にユニークなIDを作成せず、問題がなくなるはずです。また、ローダの代わりにurl関数を使用するcosider。 – pavlos
@pavlos私は以前の開発者によってこのコードを継承しました。ローダーをURL関数に変更しても問題は解決しません。ユニークなIDについて:私は質問を更新し、フィーチャーレスポンスの例を追加しました。私は 'ogc_fid'と呼ばれる独自の列をデータベースに持っています。 – nospor
'ogc_fid'を' fid'だけに切り替えることができますか? – pavlos