Lagi

Kesalahan "Paginasi tidak didukung" terjadi saat mencari lapisan fitur menggunakan widget pencarian

Kesalahan


Saya baru saja memutakhirkan ke versi 3.13 dari JavaScript API, dan saya sedang berusaha membuat widget pencarian baru (esri.dijit.Search) berfungsi di aplikasi kami.

Kami memiliki Server ArcGIS kami sendiri (10.1 saya pikir) yang menghosting layanan fitur, dan saya ingin dapat mencari ini menggunakan widget pencarian, selain alamat dan semacamnya.

Namun, setiap kali saya mencoba mencari salah satu layanan fitur ini, saya mendapatkan kesalahan "Paginasi tidak didukung" yang dikembalikan dari server. Setelah sedikit debugging, saya menemukan bahwa ini dikurangi dengan menghapus parameter "resultRecordCount" dari permintaan yang dikirim dalam kueri.

Saya mengintip kode widget pencarian dan menemukan bahwa itu menjalankan QueryTask di bawah tenda, dan meneruskan Query dengan properti "num" yang disetel ke nilai default 6 atau nilai yang saya tentukan. Dalam dokumentasi untuk Query (https://developers.arcgis.com/javascript/jsapi/query-amd.html#num), disebutkan bahwa properti num hanya berlaku untuk layanan yang dihosting oleh ESRI.

Solusinya saat ini tampaknya membuat layanan locator saya sendiri yang membungkus fungsionalitas kueri fitur, tetapi saya berharap masalah ini akan diperbaiki di versi API berikutnya. Atau ada sesuatu yang saya lewatkan?

EDIT

Meskipun saya tidak dapat menggunakan salah satu layanan fitur kami dalam contoh, karena bersifat pribadi, misalkan kami memiliki referensi keesri.layers.FeatureLayerlapisan yang di-host di server ArcGIS versi 10.1. Apa yang saya lakukan pada dasarnya adalah sebagai berikut:

var sumber = searchWidget.get('sumber'); sources.push({ featureLayer: layer, searchFields: [layer.displayField], displayField: layer.displayField, nama: layer.name, enableSuggestions: false }); searchWidget.set('sumber', sumber); searchWidget.startup();

cariWidget adalah referensi keesri.dijit.Searchyang ditempatkan di UI. Saya menginisialisasi widget ini dengan opsi berikut:

{ enableButtonMode: true, addLayersFromMap: false, enableInfoWindow: false, map:  }

Dengan pengaturan ini, harapan saya adalah bahwa saya tidak akan mendapatkan kesalahan pada permintaan web yang dihasilkan dari melakukan pencarian dengan sumber lapisan yang dipilih, tetapi saya mendapatkan kesalahan "Pagination tidak didukung".


sebagaimana dinyatakan dalam referensi API, dukungan untuk 'saran' atau 'pelengkapan otomatis' secara khusus adalah yang memerlukan dukungan pagination yang diperkenalkan di ArcGIS Server 10.3 dan juga tersedia di layanan fitur yang dihosting ArcGIS Online.

Referensi API - Widget Pencarian https://developers.arcgis.com/javascript/jsapi/search-amd.html#enablesuggestions

jika Anda tidak dapat mencari fitur sama sekali, berikan kasus repro sederhana. saya akan senang untuk melihat.


Saya mengalami kesalahan serupa di sini dengan ArcServer 10.3.1 dan API 3.27. Layanan saya dikonfigurasi untuk "Kueri Lanjutan" dan Pagination didukung, tetapi dapatkan 0 hasil jika kueri menggunakan operator 'ATAU'. Mengambil isyarat dari pengamatan Mike di atas, saya mencerminkan file Search.js secara lokal dan menghapus baris 774:

a.num = c.maxSaran || this.maxSaran;

Sekarang semuanya baik-baik saja dan hasilnya dikembalikan dalam saran. Ini menghapus parameter 'resultRecordCount' dari kueri, yang tampaknya menjadi masalah.


Tonton videonya: Paging and pencarian dalam Codeigniter