Map API, need suggestions for how to execute ideas
Beyond what I said above, I do genuinely want to bring my idea beyond the classroom. I want to push out an app that helps encourage people to recycle, and it just so happens that the main part is by far the toughest. Beyond the map, it is unlikely I will need much assistance other than a couple pointers here and there.
@RocketBlaster05 Understood. I'm already far in my new feature but I meet problems...
And, enough for today.
Have a good afternoon.
@cvp thank you. See you tomorrow. Sorry for all the confusion
@RocketBlaster05 Github updated with the new feature of automatically add a new trash pin in an existing deleted group. After a lot of tests, it seems to work.
But, unfortunately, the iOS mapkit has a known bug (lot of references in internet) of not always refreshing the map, that will say that removed pin's and removed overlays (here, the circles) are still visible and could hide the new ones.
But, locations.txt file is correct, and if you close and restart the script (not Pythonista it-self) , you will see your new crosshairs values and their new circles. Hoping it is ok for you.
@RocketBlaster05 this schéma only to show you that the circle I draw around the center of the group of points is not exactly correct.
The area where you could add a trash pin which would be automatically included in the group is the darkest green area I have manually contoured.
If you prefer this solution where I draw a circle of 10m of radius around each point of a group, tell me.
@cvp I think just the one circle would be best. However I was testing it and the circle seems to have a fairly small range when it comes to transforming the pins. I had a pin well within the circle and it did not update it. Is it based off of other pins or the center of the circle? I also noticed that the center of the circle moved after I got one to transform so that is why I’m asking.
Is it based off of other pins or the center of the circle?
A trashed pin will be added to a group only if the distance between this pin and all points of the group is less than 10 meters, thus it is not sufficient that the pin would be inside the circle.
Don't forget that a group contains points where each point has to be distant of all other ones with less than 10m.
That's why I propose you the other solution than a centered circle...with this marvelous schéma 😀
@cvp ah ok I understand now. After you explained it yes I think your schema would be good.
@RocketBlaster05 Please confirm That I modify the script to only show circle around each deleted point in a group, as circles superpose, the darker green becomes the group area.
Ideally, if I could draw only this, it would be the solution, but I think it is very very complex.
@cvp that does sound very complex. I’m not going to ask you to do it but if you want to challenge yourself then go ahead. For me what you proposed earlier seems just fine.
@RocketBlaster05 As I replaced small circles of points by big circles of 10m, it is no more very visible where points really are. Thus I changed GitHub version to show big and little circles
@RocketBlaster05 thé 2 trash are not included because outside the red contour
@cvp Looks good. I could see how this eventually could be confusing but the chances of more than 3 markers being placed within 10m of each other really is unlikely so I think it will not be much of an issue.
@RocketBlaster05 Not sure I'll try to solve this problem of inner part, but I'm still open to other easier features and for other bugs of course.
@cvp I know you worked very hard to make these circles appear, but now I need a function to remove them off of the map. The goal here was that after trash was marked, another user would come by (hopefully clean it) then clear the trash marker, as there is no longer trash present. However I want to prevent people from just saying they cleaned it. I would like to make it so that, specifically for the crosshairs, it would take three presses to clear the marker. Once the user presses it once, they can no longer press it, as some variable (set for that specific crosshair) would be set to True, not allowing them to press it again. If they tried to, a message could appear in console saying something along the lines of "You already marked this location as clean."
This may be a lot to take in so by all means ask any questions, I'd be glad to clarify things.
Thanks as always!
@RocketBlaster05 For your information, if interested by technical aspects, it should be possible to draw a filled area with the union of circles drawn around all points of the group using the ObjectiveC object named MKOverlayPathRenderer, created with CGPath to which a UIbezierPath could be converted, and an UIbezierPath is the objectinstance of ui.Path.
And this is a only summary 😅.
Briefly said, it is very complex for me, but not impossible. Perhaps in a second life.
clear the marker
One more time, obviously due to my English level, I' m notsure that I understand correctly.
Could you list an ordered sequence of touch actions (number taps, type of press) and their result.
Thanks and sorry
@RocketBlaster05 after reading deeper, would it not be easier if the tap on the crosshair does show a button "clear trash" that you could only pressed once?
Tapping this button should also clear the circles and this status should also be stored in the file.
@cvp Here is what I mean: (Clear is the same thing as remove)
- Circles are set and user can click on them (as you already have programmed)
- When the popup happens for the crosshair or a normal trash pin, there should be a button titled "Trash is Cleared"
- Specifically for the crosshair, however, it should have in the button a set of parentheses of how many presses are still needed to remove the pin. For an example, originally, the pin will say "Trash is Cleared (3)" but after someone presses it, it will then say "Trash is Cleared (2)"
- For the normal trash pins, it will only take one press to remove them. For the crosshairs, it should take 3 as mentioned above. Simply deleting them from the map and locations.txt file is all that needs to happen.
Hopefully this is understandable. If you need more clarifications just ask. Thanks!