Placing GeoPoints by dragging the map instead of long-pressing

Hi, I'm doing some development on the geographic features (GeoPoint, GeoTrace, GeoShape) in ODK Collect.

I'm considering a change in the method of placing points on the map, and we would like your feedback.

Currently, in GeoPoint and GeoShape, you can place points on the map by long-pressing on the map. The point is placed where you pressed, that is, under your finger.

The new method under consideration is to press a button that places the point at the center of the screen (which would be marked with crosshairs). So, to place a point, you drag the map until the desired location is at the crosshairs, and then you press the button to place the point.

The motivations for this method are:

  • It's hard to indicate a precise position with your finger; dragging the map lets you adjust the position until it is exactly where you want it.
  • If the point appears under your finger, its position is hard to see; using a separate button to place a point keeps your finger from obscuring the new point.
  • Long-pressing is slow and hard to discover without instructions.

We would love to hear your feedback (positive or negative) or any concerns with this change in the placement method. Thanks!

I'm tagging a few of you who have posted elsewhere about the geo widgets on this forum, in case you're interested:

@Remy_CLEMENT @mathieubossaert @Xiphware @OlivierVernin @martijnr @adil_mansour @danbjoseph @Jefferson_Francisco

Let us know what you think!

1 Like

Tagging a few more: @Enrico_Ferreguti @ggalmazor @Ivangayton @yanokwa @shiva_Reddy @paul_macharia @cooperka @Grzesiek2010

1 Like

Hi @zestyping,

thanks for your proposal. From my "DBA" point of view, I think it would allow better accuracy. But I asked my colleagues, the end-users , what they think about it.
I'll tell you soon.

Hi, @zestyping!

I'm not a huge user of this type of apps/features but your proposal seems reasonable.

I'd ask though: How is this solved in other mainstream apps? Is it like you are proposing or are there other alternative methods? I'm sure you've already thought about this, and I'm asking just to double check that we're not reinventing the wheel instead of using industry-default UX interactions.

The first answer from a colleague is positive.
The other tool he use ( MAPinr ) do have such a feature and he find it more precise.
I tried and yes, in fact, it is very intuitive. A point symbolize you position on the map and a cross in the center of the map represent the location to save. You can move the map to point the place you want to map under the cross and click to collect location.
You can also recenter the map to place your current location under the cross.

I'm good with this; I don't have a problem with long-press provided that you can zoom sufficiently, but sliding the map around central cross-hairs is also fine.


This sounds like a great idea. Just this afternoon I was working with foresters and getting an accurate selection of the geopoint is a challenge with current setup.

Paul Macharia

@paul_macharia This technique would only work if you have an accurate map layer to orient the point. Seems like in a forest you might not have all that detail or do you?


This is true.

ODK Collect allows use of Google map or OpenStreetMap. This is what one would rely on right?

Paul Macharia

Or any mbtile you want...

Good morning,

two other colleagues would like that method instead of the long-pressing.
A method they already use in popular closed app.

And another one with good arguments (edit 12:27 pm)

From my own experiments to geo-locate points on the field, the proposed method (moving the map with a cursor in the center) will be better than the long-press. Especially when conditions are difficult and the touch is not ideal (fingers full of soil, water etc ..)

1 Like

in my National Society, we use such a system to localise the adress of our customers, and be able to calculate the best road.
We started with the possibility to place the point on the map, and after a few months, we switched to moving the map under the centered point. We have over 1000 users, and they almost all prefered this fastest and more precise way to do.
Hope it could help.


Hi everyone,

Thanks for your comments! It sounds like the general idea is pretty well liked.

There's more to ODK than just placing an individual point, though, so I'll try to fill in the rest of the whole design in detail—I'd like to run this by you all and see what you think of this:

  • GeoPoint:

    • Location-only mode: A set of crosshairs and a blue shaded circle appear at your GPS location, and the map is initially centered there. The size of the shaded circle indicates how accurate the GPS location is. You can slide the map to look around if you like, and the zoom to location button centers the map on your location. There's an add point button that puts the point at your GPS location.

    • Placement mode: There's a set of crosshairs fixed at the center of the map view; there's a blue shaded circle at your GPS location. You can slide around the map to position your desired spot at the crosshairs, and there's an add point button that puts the point there. The zoom to location button moves the map (in one jump, not animated) so that your GPS location is at the center. If you want to put the point at your location, you can press zoom to location and then immediately press add point.

    • Just like today, there's a trash button that deletes the point. But if the point has already been placed, you will no longer be required to trash it before you can put it in a new location, as you do today. You can just place it. (The idea behind removing this requirement is that it's less likely that you'll move a point accidentally.)

  • GeoTrace and GeoShape:

    • The crosshairs are fixed at the center of the map view, and there's a blue shaded circle at your GPS location. Just like today, there's a backspace button that deletes the last point and a trash button that deletes all the points.

    • There is an add point button just like the one in GeoPoint; you can slide around the map and press the button to put a point at the crosshairs at any time. If you want, you can place all your points this way.

    • There is a record button that starts recording. You get to choose manual or automatic recording, and a time interval for automatic recording just like you do today. Unlike today, you don't press the record button again to pause; there is a separate pause button that appears during recording. During recording, the map automatically moves so that your GPS location is centered at the crosshairs; you can zoom the map but you cannot slide it. You can press the add point button whenever you want to add a point at your location. In automatic recording mode, a point is automatically added at your location periodically, at the time interval you selected.

    • To move an existing point, long-press it. The map will move so that the point jumps to the center, at the crosshairs. The point is now fixed at the crosshairs; you slide around the map to move the point, and then press the add point button to accept the new position. (This way you can move a point without covering it up with your finger.)

Could we hear your opinions or concerns about this design?

Thanks for helping us make ODK better, everyone!

1 Like

This works for me. If there's something wrong with it, I don't think I'll be able to realize it until I see it! By the description, and by analogy with other tools that work in approximately this way, it seems very sensible.

1 Like

Hi @zestyping !
This sounds really good to me. Thanks for that work !

1 Like

was this issue sorted?
I am getting information from different parts of the country that I would like to input in the ODK as gps points.
I have my question as geopoint and appearance maps. i can see the map, zoom into the area i want but unable to put a marker on the point i want.
Please help.


the placement-map will show you a cross on the at the GPS location.
If the location is OK you can validate, if not you can make long press everywhere else to create a point.


Thank you very much @mathieubossaert , this was very helpful.