POST
|
Hi, I'm trying to use the Search widget with the option to return multiple results (autoSelect: false). This means results won't automatically be populated into my popup, and I must handle that. The popup's setFeatures method takes a deferred. I've been trying to research what this means really but I don't quite understand. The Search widget is returning an array of results; how do I turn that into a deferred and set it as the popup's features? I understand that creating a deferred object would reference a function. I see and understand how this works with the Identify here. But in this case, as far as I can tell no function is required to return the results? Results are returned on the Search widget's event 'search-results'. Should the Search method itself be a deferred object? Here's my guess at how I thought it might go, which doesn't work: var s = new Search({ enableSearchingAll: false, autoSelect: false, map: mapObj, maxResults: 100, maxSuggestions: 100 }, "search"); var searchDeferred = s .execute() .addCallback(function(e){ s.startup(); }); s.on('search-results', function(e){ console.log('search results: ', e.results); console.log(e.numResults); mapObj.infoWindow.setFeatures(searchDeferred); mapObj.infoWindow.show(e.mapPoint); }); Trying to run the above results in Uncaught TypeError: s.execute is not a function I have a jsfiddle here, any pointers are greatly appreciated.
... View more
05-04-2016
02:56 PM
|
0
|
5
|
2365
|
POST
|
Thanks Thejus. I found the documentation a bit ambiguous but if that's the expected behaviour, I can work with that.
... View more
04-28-2016
01:00 PM
|
0
|
0
|
666
|
POST
|
Jsfiddle here. If you type a partial address and hit enter (ie. type "2980 Prin" then hit enter) you can see multiple results are being returned. Results are also logged to the console. Should I be handling the results myself, or is this a bug that the infoWindow is not popping up and no results are zoomed to?
... View more
04-28-2016
11:37 AM
|
0
|
2
|
666
|
POST
|
I'm wondering if anyone has managed to use the search widget with autoSelect set to false? I would like the user to type in the search box something like "medium", and hit enter, and have all features with "medium" in the search field returned. All of my layers feeding into the search widget work fine when autoSelect is set to true, but as soon as I set it to false it seems the widget is unable to select anything at all. Either by hitting enter, or by clicking one of the suggestions in the dropdown - nothing happens at all. No infoWindow shows and the map doesn't zoom to any features. Am I missing something? Do I need to do something in addition to just setting autoSelect to false?
... View more
04-27-2016
03:33 PM
|
0
|
3
|
2171
|
POST
|
Thank you Chris. I should have known by the inconsistency of results that I was trying to access the data before it was finished returning!
... View more
03-21-2016
07:47 AM
|
0
|
1
|
567
|
POST
|
I'm using YQL to get some html from a website so that I can scrape it for values. The site is 24 Hours Tidal Preliminary Observations - Tides, Currents, and Water Levels (URL to be updated by javascript depending on the current day to get the last 24 hours of data) . The YQL REST query is https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.tides.gc.ca%2Fe… which returns JSON. I'm trying to use Object.getOwnPropertyNames(obj) but it seems that I'm getting inconsistent results. Yesterday all property names within the object were being returned, today it seems only enumerable property names are being returned. I changed nothing from yesterday afternoon to this morning. If you visit this jsfiddle and open the console (in Google Chrome) you can see that the object contains a second nested object called "responseJSON", which is what I'm trying to access. In IE it's not showing the nested object I'm after, interestingly, when logging the main object - only showing enumerable property names. Yesterday this returned ALL the property names to the Chrome console, as it should: console.log(Object.getOwnPropertyNames(jqxhr)); Today it does not. I don't know how that's possible...yesterday I was able to access the portion of my desired data with: console.log(jqxhr["responseJSON"]["query"]["results"]["tr"]["100"]); but no longer today. I get back that "responseJSON" is undefined. Would appreciate hearing from anyone who has experience working with nested objects/arrays.
... View more
03-18-2016
11:29 AM
|
0
|
3
|
1700
|
POST
|
This is an old thread, but just wanted to add that this was the solution for me - moving the jquery-ui reference so that it was loading before the JS API. My multipleDefine error vanished.
... View more
03-09-2016
10:46 AM
|
1
|
0
|
14534
|
POST
|
Thanks Robert. You are right, that is what I initially asked for and then changed my mind. Appreciate all your help.
... View more
03-03-2016
10:23 AM
|
0
|
0
|
581
|
POST
|
Hi Robert, thank you! After placing this in my map, I've realized it's taking the selected item and adding it to the front of the array. So if I've clicked on objectid 23, clicking the "next" button takes me from 23 to 1, then 2, etc...and 23 occurs again at its appropriate spot. I could work this out but I also realized it's not too user-friendly to have the window start at "1 of 173" or whatever but have that be somewhere in the middle of the photo route. If the user clicks the map somewhere mid-way through the route, I would like them to be able to scroll both backwards and forwards from the photo they clicked on - starting at 1 only allows them to advance forwards along the route. Thank you for your efforts and I'm sorry not to be using your solution. I've been trying to set the popup's index using popup.select(index). I'm not sure why, but I'm seeing the infoWindow go to the appropriate index when it pops up (25 in this jsfiddle), then immediately return back to 1 of 1000. I'm not sure how or why it's resetting itself; do you have any clue?
... View more
03-03-2016
09:52 AM
|
0
|
2
|
581
|
POST
|
Hey Steve, I still get the same typeError trying that way. I've made a new "discussion" here because this is kind of a separate question from my original one that Robert had answered. Reorder Query Results - Multidimensional Array?
... View more
03-02-2016
09:31 AM
|
0
|
0
|
537
|
POST
|
I have a query set up that feeds the results into an infoWindow. However, before adding the results to the infoWindow, I would like to reorder the query results so that the first item in the infoWindow is the feature that the user has clicked on in the map (currently the first item is the first query result, which geographically may be elsewhere than where the user clicked). What I have is a route that has been driven, with photos taken along the way - ideally the user can click a photo point, and the infoWindow will allow them to scroll backwards and forwards along the route to view adjacent photos. I've set up a jsfiddle here. (My own services are on an intranet so couldn't use them in the fiddle) What is being returned from the query seems to be a multidimensional array, but I'm not sure. I can't get to any of the results using syntax that should work for a multidimensional array, such as queryDeferred[0].length, etc. Here are the results if I log queryDeferred to the console: This suggests the array queryDeferred contains two more arrays, 0 and 1 (and 1 is empty?). Expanding array 0: Alternatively instead of reordering the results of the query, maybe I could just advance the infoWindow to the user-selected photo? But how do I determine what is the current feature shown in the infoWindow? I have a data attribute called FRAMENO which always starts at 0001. If I could advance the infoWindow to show the FRAMENO of the photo the user selected that would work. So I have a total of 221 photos returned by the query, and if the user clicked on FRAMENO = 0043, how would I tell the infoWindow to advance to 0043 before showing?
... View more
03-02-2016
09:24 AM
|
0
|
4
|
2088
|
POST
|
Thanks Steve - so, should I be able to get information as I would in a one dimensional array? Printing queryDeferred[0].length to the console results in a "TypeError: Cannot read property 'length' of undefined"
... View more
03-01-2016
03:13 PM
|
0
|
0
|
537
|
POST
|
I'm not sure - console.log(queryDeferred) will successfully log the array to the console so they are existing inside queryDeferred... This is what I see in the console:
... View more
03-01-2016
02:55 PM
|
0
|
4
|
537
|
POST
|
Hi Steve, so with the code above should it be theResults = queryDeferred[0][1].features; I get an error if I try and log theResults to the console this way. I have a jsfiddle here: Edit fiddle - JSFiddle
... View more
03-01-2016
02:15 PM
|
0
|
6
|
537
|
Title | Kudos | Posted |
---|---|---|
1 | 03-09-2016 10:46 AM | |
1 | 01-21-2016 10:04 AM | |
1 | 06-23-2015 10:58 AM | |
1 | 01-19-2016 11:19 AM | |
1 | 08-10-2016 02:06 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|