-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Add filters to Nearby #1450
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Even I was thinking of the same thing as the app shows places inside fix radius around user's location. |
I would totally use this feature to filter out schools, to avoid the creepiness haha When I go to a place where there are a lot of pins I might want to only show the important ones that are not closed. But once I have uploaded most of them and the pins are getting rare, I will probably want to show the other ones too. What is important is probably subjective. |
I'm curious about the discussion of "important" - is this actually a Wikidata tag or are we just taking the lay meaning of it? @nicolas-raoul Haha, good usage. ;) I've been thinking a bit about using the "instanceOf" label as a filter. There are many types of instanceOf, probably more than we can easily display in a checklist, I think. I wonder how we can work around that. Should we just allow filtering of several common ones? Should we have a "More" button that users can click to be brought to a different activity that shows all of them? |
There is no concept of "importance" in Wikidata. I just meant that some people want to take pictures of all religious buildings, while other people want to take pictures of all religious building, it is just a matter of personal interests. I started computing statistics about the "instanceOf" of the points we deal with, it will probably take a day or two before all results get computed but here are the results so far: |
Here are the types of items that have a latitude/longitude but do not have a picture:
Full file: stats2.txt As you can see:
|
@nicolas-raoul Thanks! The data is very interesting, I actually had no idea there were so many. It is also interesting that there are more "rural commune of Vietnam"s than there are global train station points, lol. This does complicate things a bit. Maybe we should come up with a simple prototype first, and then see if many people actually use the filters, before enhancing it by hardcoding mappings to improve coverage? My suggestion is that we take all of the ones with >10k points, and remove the country-specific ones. Then in the filter UI we have a checklist with "Doesn't exist anymore", "Has Wikipedia article", and "Instance of". If the user checks the Instance Of item, we take them to a separate fragment that has all the points I mentioned and they can choose which ones to check. What do you guys think? |
I'd LOVE to have a possibility of filtering the results (filtering out streets in my case, photographing them is BORING :-) ). I was thinking that maybe we could use parts of the queries used by Petscan (in the Wikidata tab, see attached image). You can just type any number of properties or items separated by commas and they will get filtered. This is an option for power users anyway. |
Hello Neslihan, it looks great from a UX perspective. I am worried that it's not customizable enough, though. Will it be possible to filter custom classes of objects? For example, Czech Republic has all streets imported and I'd like to filter them out. It could be the same for eg. buddhist temples in Nepal. Is it possible to enter any type of class or will your tool be limited to only 40 options? |
Hi @neslihanturan , thanks for the mockup!
@VojtechDostal we were discussing the issue of classes here. Edited: I looked over our current code and it does seem feasible backend-wise to allow users to search for custom classes (with the caveat that if they search wrongly, no pins will show up). However I'm not sure yet how we can implement this UX-wise. Perhaps it could be an additional "custom" option separate from the list of mainstream options? |
Hmm, that's of little use to our community but I understand your reasons. I originally envisioned an input box somewhere in settings which would permanently alter search results for the user for all his/her queries (unless they decide to change the settings). It could have worked like Petscan which I mentioned in June last year (see above). |
@VojtechDostal I revised my comment after looking through the code just now, I think it might be doable. My suggestion for this: If the user types something in the search field that isn't one of our preset options (say, "street", although from the looks of Nicolas's stats.txt, that should be high enough in the hierarchy to make it to preset)... instead of displaying Neslihan's list, it would instead display the option "add as custom filter", which would then add the user's input to the list of types. We may or may not be able to get this to persist across app restarts (within the time allocated for this task), so there may be the inconvenience of having to create the custom filter again next time, but at least the option exists? |
@misaochan agreed about checkboxes, I will search for the best way of displaying checked options on search row. Because I wouldn't prefer to expand the check list and review what I clicked there. Instead I would prefer to see what I included when check list is collapsed. On the other hand, we can not fit 40 element to one row if all of them are checked. @VojtechDostal thanks for pointing out "except" case, I will reconsider the design accordingly. |
I like suggestion 2 a lot more. :) With suggestion 1, there may be far too many types to display if the user selects "all except X". Displaying selected types at the top is a nice touch, too, but I'm not sure about this because the list of selected types could, again, get extremely long, forcing the user to scroll down to see the actual type suggestions. If the user searches for a place type that isn't in the list, there should be an option to "add custom filter". The pin styling according to place states is a nice idea, but I'm not sure how it would work. Firstly, I think we only have two useful states: "past object" (which is basically 'doesn't exist', but I think it's clearer because it indicates that the object used to exist), and "has Wikipedia article". Also, AFAIK the two states are not necessarily mutually exclusive - a place could both be a past object AND have a Wikipedia article (@nicolas-raoul can you confirm this?). So in that case what color would we make it? |
But I think @nicolas-raoul mentioned that this could take too much time. But if we still want to include this, I can add such think into design 2 |
I am OK with both Nes' suggestions 1 and 2. The performance problem is not only about custom filters, but might be also for built-in place types. For instance, let's say I select "school": I would probably expect the app to also include sub-classes of "school", such as "physico-mathematical boarding school" https://www.wikidata.org/wiki/Q4483543 . That is a rather time-consuming SPARQL request to perform. Personally I might not use Personally I would certainly use
I suggest the first (or maybe third) state to be the default one. I agree with Josephine that pin colors are best used to show place states, rather than place types. |
I agree that "exists" covers all items but on the other hand it can be confusing to see "needs photo" images when it is deselected. So the question is should we first filter as "need/not need photo" then filter as "exists", or first as "exists" then "need/not needed".
To make it more clear, we can rename it to "only exists".
Maybe "Only needs photo" would be better for this one then. So that the opposite would be all. Additionally,
It already does indicate place states. But even if we reduce number of place states to two, I think we should preserve pin styles as 3, to be more clear. |
An additional SPARQL query for place type filters would be detrimental for the user I think, as they would need to wait for Nearby to load all over again whenever a filter is modified. However it does have the advantage of being able to handle subclasses. But it would be much more time consuming to implement. |
I think we considered including Nearby Places Has Photo several times by saying it can help users to see example nearby photos. And including both would help us to solve the confusion of "what nearby photos means"
I agree to filtering what we already have |
Seeing existing pictures is very useful in all places that are not super-touristic. |
Hmm, so in that case we are intending to merge viewing of existing pictures with Nearby? I was originally envisioning that we would eventually have a separate map of existing pictures in Explore, where it seems to be more appropriate in my opinion. If you guys strongly feel that it should be merged with Nearby, I am OK with that, but @neslihanturan you do realize that this will increase your workload for this task hugely? Since we have not actually implemented a map of existing pictures, so you would need to handle all of that as well. |
When I consider our future new UI plan which will be implemented at the end of 2019 and will include bottom tabs as Home, Nearby, Explore, My contributions, I thought it can be confusing to have 2 maps on both Nearby(we consider renaming nearby though) and Explore tab. So my vote is handling all map related tasks from one place. |
@neslihanturan OK, I will leave the decision up to you. :) If you find that implementing a map of existing pictures takes too much time, you can just remove the filter for that and create an issue for a future enhancement. Maybe for next year's GSoC/Outreachy? ;) |
Not that I have any power to decide, but as a user I would probably find it more convenient to have a single map. The name "Nearby" can be used for both nearby images and nearby places that lack images. |
@nicolas-raoul I assumed Nearby naming will change not because has/lack images, it was because of search this area button. Sorry for mixing all issues together, but when it comes to UI decisions I try to connect dots. To sum up the issue, it seems like we will go with the design 2, try to have a single map and have 2 chips instead of 3 (with better namings). Update: We have one more additional place type as "Freedom of Panorama", see issue #2952 for more info. |
Sounds good! Re: the naming, yeah, I think we were discussing this in another issue #2190 . I think the conclusion was that we want to stick to Nearby? |
* Add layout items for nearby filter list and filter item (cherry picked from commit b96f8a6) * Edit nearby query (cherry picked from commit 1f3c8c8) * Add filter items to nearby parent fragment xml (cherry picked from commit d0beadd) * Add icon for green marker (cherry picked from commit f65ca03) * Add layout util file to organize layout utilities (cherry picked from commit 5c57939) * Add pic parameter to nearby result item (cherry picked from commit 86007e4) * Add pic parameter to place type (cherry picked from commit 25c358b) * Add green marker styling (cherry picked from commit 929c92d) * Inıt search layouts on Nearby parent (cherry picked from commit 2ac38a1) * Style green markers at nearby controller (cherry picked from commit 3e08f39) * Edit bookmark daos to include pic to tables (cherry picked from commit 48d69ed) * TODO foc bookmark dao item but works now (cherry picked from commit f748399) * Style nearby filter area (cherry picked from commit 6267e48) * fix style of filter tab (cherry picked from commit 5f843bf) * Add nearby list adapter (cherry picked from commit 56334af) * Current status, list size is working, visibility working, filter mechanism is ready (cherry picked from commit 7d75c9c) * Filtering works (cherry picked from commit 8a13cf7) * Filter function works (cherry picked from commit 78368a2) * Fix style issues (cherry picked from commit 2204f70) * Add divider to recyclerview (cherry picked from commit c8100b5) * Hide bottom sheets accordingly (cherry picked from commit c5deba8) * Code cleanup (cherry picked from commit cf8f64f) * Add actions to chips * Fetch destroyed information from servers * Add destroyed places icon * Make chip filter functions work * Revert irrelevant changes * Revert accidentally replaced strings * Remove unneeded lines * Remove only places expalanation from trings * Do not filter if nearby places are not loaded * Add triple checkbox for add none and neutral * Make tri checkbox work * Fix travis issue * Add coments * fix search this area button locaton * Set initial place type state and recover it between each populate places
This was inspired by #618 , but I decided to create a new issue as this is a much more general suggestion.
I wonder if it would be a good idea to have filters where people can filter out certain types of Nearby items. The most obvious usage would be for the "instanceOf" label, where someone could say they wanted "historic sites" or "suburbs" etc specifically, and only see those pins on the map. And of course, for the items that don't exist anymore, as per #618 . Maybe even filter for items that have or don't have Wikipedia articles, etc?
This would likely need to be done alongside #591 , as currently our range and location of pins is a bit restrictive.
The text was updated successfully, but these errors were encountered: