Daha çox

Broşura axtarış plaginindəki CartoDB JSONP geri çağırış


uzun müddət oxucu, ilk dəfə sual verən və s ...

Beləliklə broşuradakı cartodb məlumatlarını və bu broşura axtarış plaginini istifadə edərək qurduğum bir tətbiqdə bir axtarış funksiyası tətbiq etməyə çalışıram: http://labs.easyblog.it/maps/leaflet-search/

Bir az arxa plan olaraq standart bir axtarış işləyir (vərəqə-ajax plaginini istifadə edərək geojsonumu axtarır), amma problem yalnız bir sahəni əhatə edir və axtarışdan birdən çox sahəni keçməsi üçün ehtiyacım var. Bunu etmək mümkün olduğunu bilirəm və bunun üçün bir metod tapdığımı düşünürəm, amma bir şey səhv olur və bunun səbəbini bilmirəm.

Bu misal: http://labs.easyblog.it/maps/leaflet-search/examples/jsonp-filtered.html mapquest-dən bir jsonp zəngindən istifadə edir, sonra sahələri bölür (bunun necə faydalı olduğunu soruşmayın, amma bu yalnız bir nümunədir), buna görə əminəm ki, ehtiyac duyduqları şeyləri "açar" varda bir araya gətirmək, onları bir arada axtarmağa məcbur etməkdir. aşağıdakı nümunədən kod

var jsonpurl = 'http://open.mapquestapi.com/nominatim/v1/search.php?q={s}'+' & format = json & osm_type = N & limit = 100 & addressdetails = 0 ', jsonpName =' json_callback '; // üçüncü tərəf jsonp xidmət funksiyası filterJSONCall (rawjson) {// yenidən çağırış sahələri adı var json = {}, key, loc, disp = []; for (var i in rawjson) {disp = rawjson [i] .display_name.split (','); key = disp [0] + ',' + disp [1]; loc = L.latLng (rawjson [i] .lat, rawjson [i] .lon); json [key] = loc; // düymə, dəyər formatı} return json; } var searchOpts = {url: jsonpurl, jsonpParam: jsonpName, filterJSON: filterJSONCall, animateLocation: false, markerLocation: true, zoom: 10, minLength: 2, autoType: false}; map.addControl (yeni L.Control.Search (searchOpts));

Layihəmdə birləşmə yaxşı işləyir, amma ömrüm boyu məlumatları filtrə sala bilmirəm. Kodum jsonp url və geri çağırış üçün eynidır

var jsonpurl = 'http://stratiform.cartodb.com/api/v2/sql/?q=SELECT%20name,%20ST_AsGeoJSON%28the_geom%29%20FROM%20schools_points%20WHERE%20name%20ILIKE%20%27%cl 25% 27 & format = json ', jsonpName =' geri zəng ';

Url-də '& callback = whatever' ayarlamağa çalışdım, ST_AsGeoJSON sql funksiyasından istifadə etməyə çalışdım və demək olar ki, fikirlərim bitdi!

İstifadə etdiyim cartodb jsonp url-də problem var? Geri çağırışları fərqli bir şəkildə və ya başqa bir şəkildə idarə edirmi? Bu funksiyanı uyğunlaşdırmaq üçün bir şəkildə dəyişdirməliyəm? Çapraz mənşəli bir şeydir? Düşünürəm ki, soruşduğum budur ki, niyə mapquest jsonp və cartodb jsonp əlaqələri işləyir və işləmir?

Bu problemlə əlaqədar işlərim var, ancaq bu şeyləri tətbiqin özündə qurmaq daha təmizdir. Kimsə kömək edə bilər?


"geri çağırış" əlavə etmək lazımdır, mən bu kodu istifadə edərək test etdim:

 


Videoya baxın: Коммуникация между сайтами с помощью JSONP (Oktyabr 2021).