Main features

Point capture and management

Capture GNSS points on a map and organize them for field checks and surveying tasks.

Areas, perimeters and distances

Compute land areas, perimeters and 2D/3D distances directly on site.

Point cloud and polygon modes

Use either point cloud or polygon workflow depending on project needs.

3D terrain visualization

Inspect slopes and surfaces with terrain rendered in 3D.

Spanish Cadastre and GIS formats

Import Spanish Cadastre GML, KML and GeoJSON/JSON files, plus XML containing GML geometry. Export your points as GeoJSON/JSON.

Point names, data and photos

Give each point a name and attach text fields and field photos to its popup.

How RTK/NTRIP works in movilTopo

1

Connect your external GNSS receiver to Android via USB OTG.

2

Configure your NTRIP caster credentials and mountpoint.

3

movilTopo receives RTCM corrections and sends them to the GNSS receiver.

4

Use corrected real-time positions for measurement and stakeout.

What you need to get started

Quick guides to get started

Seven quick tutorials to get started with movilTopo. Open the one you need and follow the steps.

1Add Google satellite3 steps
  1. Open the editor

    Menu ☰ → Layers → New.

  2. Enter these settings

    Use the full URL below. Enable crossOrigin and open Advanced to enter the subdomains.

  3. Save and select

    Press Save. Return to the map, open the layer selector (stacked sheets icon) and select Google sat.

Name
Google sat.
Type
XYZ
Max zoom
28
Max Native Zoom
20
crossOrigin
Enabled
Subdomains · Advanced
mt0,mt1,mt2,mt3
Attribution (optional)
© Google

Zoom 28 enlarges the image. Original detail is available up to native zoom 20.

Google sat. editor with zoom 28, native zoom 20, crossOrigin and four subdomains.
Add Google satellite · Enlarge screenshot
2Add an offline map4 steps
  1. Get the ZIP

    Download the Puerta del Sol example before heading out.

  2. Create a local layer

    Menu ☰ → Detail layers → New. Type: Tiles. Source: Local package. Package ID: madrid-sol. Scheme: XYZ.

  3. Import and save

    Press Import and select the ZIP. Then set Min zoom 18, Max zoom 28, Max Native Zoom 18 and enable visible. Press Save.

  4. Check the map

    Return to Puerta del Sol (Madrid), at 40.4168, -3.7038, and zoom to level 18. Turn on airplane mode: that area should still be visible.

Download example ZIP · 151 KB

ZIP import runs in the Android app. This example covers a small part of Puerta del Sol at zoom 18; higher zoom levels enlarge the same image.

How to organise the ZIP
mi-mapa.zip
└── 18/
    └── 128373/
        └── 98751.png

You can use your own ZIP: follow the zoom / column / row structure and use the scheme and native zoom of your package.

© OpenStreetMap contributors

Local XYZ layer editor for the Puerta del Sol ZIP.
Add an offline map · Enlarge screenshot
3Create points between A and B4 steps

Example: 20 m from A to B · a point every 5 m

  1. Prepare two points

    Create or load A and B. To practise without GNSS, enable Menu ☰ → Manual: ON and tap two places on the map.

  2. Choose the start

    Tap A and select Points to… in its popup.

  3. Choose the end and spacing

    Tap B. Enter 5 in the spacing prompt, with units set to metres, and confirm.

  4. Your points are ready

    On a 20 m segment, three new points appear at 5, 10 and 15 m from A. A and B are kept.

Point A popup with the Points to… action.
1. Tap A and select “Points to…” · Enlarge screenshot
movilTopo map with two endpoints and three intermediate points.
2. Result: A + 3 new points + B · Enlarge screenshot
4Import Spanish Cadastre files3 steps
  1. Download the file

    Get the parcel GML from the Spanish Cadastre website. If the download is a ZIP, extract the .gml or .kml file first.

  2. Open Load points

    Wait for the app to receive a valid GPS position. Open Menu ☰ → Load points and select the file.

  3. Load it onto the map

    Press Load on map in the file section. movilTopo imports the vertex coordinates so you can work with them on the map.

Spanish Cadastre help: GML and KML downloads

Import formats

.gml
Spanish Cadastre parcel or building GML
.kml
KML geometry
.xml
XML containing GML geometry
.geojson / .json
GeoJSON

XML import reads GML coordinates; the cadastral certificate data XML is a separate file.

5Distance from a point to a line4 steps

Example: 20 m line A–B · 8 m perpendicular distance from P

A twenty metre line A–B, point P and perpendicular foot H. P–H is eight metres long and meets A–B at a right angle.ABPHA–B = 20 mP–H = 8 m90°
  1. Measure A–B

    Prepare A, B and a point P away from the line. Tap A → Distance to… → tap B. A distance label appears for A–B.

  2. Select point P

    Tap P and choose Distance to… in its popup.

  3. Tap the A–B distance label

    Press the distance label on the A–B measurement, for example 20.000 m (XY).

  4. Get the point and distance

    movilTopo creates a new point H where the perpendicular meets the line and draws the P–H measurement. The example shows 8.000 m (XY).

H is the foot of the perpendicular. The XY measurement is the horizontal distance from P to the line. The line extends beyond A and B, so H can lie outside the A–B segment.

movilTopo map with a 20 metre A–B measurement and the popup for point P.
1. A–B measured; choose “Distance to…” at P · Enlarge screenshot
movilTopo result with a new perpendicular point and an 8 metre measurement.
2. Result: point H and an 8 m perpendicular distance · Enlarge screenshot
6Rename a point and add data4 steps

Example: Station 1 · Status: Checked · a field photo

  1. Rename the point

    Tap a working point on the map, then tap the underlined name or number in its popup. Enter Station 1 and press Save.

  2. Add a text field

    In the popup, choose Add data → Add text field. Enter Status as the field name and Checked as the text.

  3. Attach a photo

    Press Choose photo to attach an image, or Take photo to take a photo. You can add several.

  4. Save and review the popup

    Press Save. Tap the point to see its new name, text fields and photos.

Each field needs a unique, non-empty name. Point names, text and photos are preserved when exporting points as GeoJSON/JSON.

movilTopo form for renaming a point to Station 1.
1. Enter the new name and save · Enlarge screenshot
Point data editor with the Status field, Checked text and an attached photo.
2. Add text and photos · Enlarge screenshot
Station 1 popup with its text field and photo.
3. Result: point name, data and photo · Enlarge screenshot
7Connect the USB module and configure its profile4 steps

Connection overview

PhoneUSB-C or micro-USB
OTG adapterPhone connector → USB-A female
Data cableUSB-A male → module connector
GNSS moduleUSB-C or micro-USB, depending on the board
  1. Prepare the adapter and cable

    Use a phone that supports USB host/OTG. Plug an OTG adapter with a USB-A female socket into the phone, then connect a USB-A data cable ending in USB-C or micro-USB to match the module.

  2. Find the module

    Open Menu ☰ → GNSS → Search devices. Select the module from the list and accept the Android USB permission when prompted.

  3. Choose its profile

    Under GNSS profile, select LC29HDA, UM980 or u-blox (M8/M9/F9) to match your receiver. You can also use Auto (detection). Baud Rate must match the module’s serial speed.

  4. Connect and apply the configuration

    Tap Connect GNSS, then Configure profile. The app sends receiver-specific settings: operating mode and GNSS messages according to the profile, to prepare the RTK workflow. Then connect NTRIP to receive corrections.

Profiles available in the app

LC29HDAUM980u-blox (M8/M9/F9)

Auto (detection) · Generic NMEA

Actual movilTopo GNSS profile selector with UM980 selected.
1. GNSS profile: UM980 example · Enlarge screenshot
Actual movilTopo Connect GNSS and Configure profile buttons.
2. Connect GNSS → Configure profile · Enlarge screenshot

The Generic NMEA profile reads data but does not send configuration settings to the receiver. RTK requires an RTK-capable module and valid corrections; choosing a profile does not turn a basic receiver into an RTK receiver.

Important: a USB-C to USB-C cable may not work

Some USB-C boards lack the required detection resistors on CC1/CC2. The phone may fail to detect the module or enable power in host mode. If this happens, use the OTG adapter and USB-A data cable shown above. A correctly implemented USB-C module can work with a USB-C to USB-C cable.

Learn more: Android USB host · USB-C detection (Texas Instruments)

Hardware compatibility

LC29HDA GNSS receiver for RTK surveying

LC29HDA

Verified profile support for RTK field workflows.

UM980 GNSS receiver for RTK surveying

UM980

Integrated profile support for high-precision GNSS operation.

u-blox ZED-F9P GNSS receiver for RTK surveying

u-blox ZED-F9P

High-precision multi-band RTK GNSS receiver.

Each receiver has its own profile in the app. See the USB connection guide to choose an OTG adapter and apply the configuration. See USB connection and profiles.

Topography station STL files

The full kit for the 2 m x 30 mm wooden pole is already available with quick assembly notes, reference photos and direct STL downloads.

Open STL section

Android surveying for land measurement and stakeout

movilTopo is designed for practical field surveying workflows: GNSS point capture, parcel boundary checks, basic stakeout, area and perimeter computation, and on-site validation using RTK positions. The workflow combines external USB OTG GNSS receivers, NTRIP/RTCM correction streams, and GeoJSON/JSON data exchange for GIS continuity.

FAQ

Can I use movilTopo without an external GNSS receiver?

Yes, in basic mode with phone GPS, but precision depends on device hardware.

Is NTRIP mandatory?

No. NTRIP provides the corrections needed for RTK positioning with a compatible receiver.

Is this a certified legal surveying instrument?

No. For legal or official surveying work, consult a qualified professional.

What do I need for centimetre accuracy?

An RTK-capable GNSS receiver, valid corrections and a fixed RTK solution. Accuracy also depends on signal quality and field conditions.

Final precision depends on GNSS receiver quality, satellite signal quality, correction service and field setup.