Interactive Deed Plotter with RTK Localization, KML Export, and CSV Reporting

I built a browser-based Deed Plotter that converts metes-and-bounds deed descriptions into accurate geodesic geometry, with optional RTK-based site localization and practical export options for analysis and visualization.

The tool parses deed calls (lines and curves), computes true geodesic points (no flat-earth assumptions), and supports workflows commonly used in boundary retracement and legacy plat reconstruction. RTK points can be supplied at the ending point of a deed call, allowing the parcel to be translated and rotated into real-world position without distorting the deed geometry.

Key features include:

  • Metes & bounds parsing (lines + curves)

  • True/geodesic point computation

  • Optional RTK localization (translation + rotation, with optional scale solve)

  • Automatic handling when no POB is provided (deed call reordering)

  • Canvas-based plotting with bearing-aligned, multiline labels

  • Residual distance reporting at RTK control points

  • KML export for direct visualization and retracement in SWMaps

  • CSV export of computed calls, coordinates, and residuals

The entire plotting and computation workflow runs client-side in the browser, making it easy to experiment with deed geometry, RTK control, and legacy plats without specialized CAD or GIS software.

Deed Plotter Tool: https://845.ddns.net/deed-plotter.html

Other notable deed plotter tool that gave me the inspiration to build the tool.

Disclosure / Disclaimer

I am not a licensed professional surveyor and not a mathematician. I am a hobbyist with an interest in land records, mapping, and geometry, and this tool was created for personal exploration and educational purposes while researching my own property corners.

This tool is not intended to provide survey-grade results, legal boundary determinations, or authoritative measurements. To the best of my knowledge, the outputs produced by this tool should not be relied upon for legal, engineering, construction, or land-use decisions.

Any results generated are approximate, dependent on the accuracy of input data (deed descriptions, RTK points, assumptions, etc.), and may differ from the findings of a licensed professional surveyor using certified equipment and methodologies.

If you require legally defensible boundary information or precise positioning, you should consult a licensed land surveyor.

Additional Note

This post (and some of the accompanying write-up) was generated with the assistance of AI because I’m lazy and would rather spend time poking around property corners than wordsmithing forum posts. The tool itself, however, reflects my own curiosity, experimentation, and hands-on work.

@rftop @sparky @ChrisO

6 Likes

Thanks for sharing.

@Andrew74 This tool has really helped me visualize my Deed and SparkFun RTK Torch readings. And thank you for early access for testing.

Some suggestions or ā€œrookieā€ user suggestions before I get so used to the tool I forget what I didn’t quite understand using it at first….. in no particular order …

  • If you don’t have Start Lat/Long those boxes can remain empty
  • If your Deed has some starting calls from a monument to a monument before your actual property deed begins, I would leave them out of the input file. It confuses the tool on how to finish at the Point of Beginning (my 50 ac Deed does this)
  • If you don’t have Declination at time of Deed Leave it blank (though I may experiment by guessing age of deed, and my Deed seems to have Declination already applied so calls are True North)
  • Make sure your spreadsheet has all Torch (or RTK Facet, or Surveyor) decimal places showing otherwise your cut and paste may only use visible decimal places
  • Remember to Click on [Convert/Plot] if you are trying the 4 different adjustments (Least Squares, Distances are Ground, RTK Localization (Rotation + Translation), and RTK Localization Scale. I was comparing KML Exports, and thought wow, these match… oops not enough clicks, and don’t do this at 11:30pm when tired :laughing:
  • I have found that keeping my DEED Data in Google Sheets is helpful, and when I want to run the tool I have NOTEPAD files setup in the format and just swap in the TORCH RTK readings I may have retaken, or maybe new readings added once I find a pin from using the helpful KML output of the tool.

Disclaimers - I am a farmer not a surveyor. I am using SparkFun RTK Torch to ensure the fire breaks I am putting in are on my property, but close to the line. I am RED/GREEN color blind so some things like RED lines and Green SW MAPS make lines invisible to me (depending on shading) I have been able to import KML into Google Earth Pro PC, SW MAPS Android, and this tool is super helpful for non-surveyors. My deeds have over 140 calls in total across 3 parcels, and this tool managed it without any problems. THANK YOU ANDREW!!!

This is really impressive work, running everything client-side with true geodesic math and optional RTK alignment is no small feat, and your transparency about limitations is appreciated. It looks like a genuinely useful exploration tool for understanding deed geometry and legacy plats without heavy GIS software.

1 Like

In a non-licensed, not legal, discussion…. how are people reconciling with the fact an RTK Torch with corrections is accurate to 2cm, but historical deed records are far from that accurate. I know legally, long standing monuments like Fence Line, Road, etc over rule a more accurate bearing and length via RTK tools… but let’s assume you find 5 to 8 monuments, 1 or 2 have licensed survey caps that may be … old 25 years old even maybe more… how do you weight the value of the professional monuments like Capped Pin, vs. definitely found the Rebar pounded into the ground but it’s 4ft from where it should be, and the next unofficial pin (rebar) is found and it’s 15ft from where RTK says it should be etc… Just wondering how you reconcile all the aberrations, versus how a tool like Andrew created that does hard cold geometry?

One thing to remember is we can never collect a RTK point and ā€œknowā€ it has a 2cm or less accuracy. Proving any gnss position requires a lot of time and work.

But this is a great application as long as we think of RTK and Andrew’s WebApp as tools to find existing ground evidence.

Another thing to consider is the least squares adjustment by the professional surveyor. This is a network analysis that literally changes the calls to be published, but the iron pins don’t necessarily move unless a blunder was identified.

2 Likes

I applied all the correction methods, just to see how far one corner point might be using some and all of the methods, e.g. no corrections, Least Squares by itself, RTK Localization by itself, Least Squares with RTK Localization, and a few other combinations. RTK Local with RTK Scale (two options selected) came the closest to my magnetic readings, and my physical measurements with a 330ft Tape (3x’s to get to 779.39ft and all it’s imperfections) and just found it interesting… and given my physical measurements and all the other combinations, at least for this one corner, RTK Local Scale by itself seem to be closest to my physical and magnetic readings. Now I will go out and see if it is near where I found a metal fence post that was pulled up but left on the ground… unfortunately not pounded into the ground.

I am wondering how Surveyors in a non-legally binding opinion, weigh all the information, found a monument, but it’s really wrong (20ft) vs. found a monument 5ft wrong…

I haven’t gotten very far yet in my Surveying Text Book yet, was just curious to hear some thought processes, not the mechanical calculation aspect… at least not yet.

As always, thanks for all your help, I have learned a lot from you from both public posts, and your IM’s.

While Tennessee isn’t officially a PLSS state, it basically is. Every State has different Laws for Land Surveying, but the PLSS states follow the BLM.
Here’s a online copy if you ever get bored: https://www.blm.gov/sites/default/files/Manual_Of_Surveying_Instructions_2009.pdf

It’s surprisingly interesting, as this System pre-dates the US Constitution. :nerd_face:

1 Like

Is the source code available, and is it under an Open Source LIcense?

1 Like

Maybe real surveyors wouldn’t ask this, but is there any value in the tool being able to judge the error on say 5, or 6 segments of a full deed. For example one of my parcels has a very very long leg compared to most of the calls.
Example

North 87d 26m West 1,512.98 ft to iron pin corner (Found this pin)
North 2d 11m East 382.00 ft to an iron pin corner (found this pin)
North 0d 48m East 221.66 ft to an iron pin corner (Found this pin)
North 1d 04m East 402.82 ft to a Point ? (no pin to find, but I should go there and look)
North 3d 59m East 1,064.07 ft to an iron pin corner (Found this pin)
North 71d 30m East 306.51 ft to an iron pin corner (found this pin)

5 stated pins, all of which I found, so could the tool calculate how much error there is just in that portion of the deed calls?

It seemed to work, and the Survey must have a lot of error, though the SW MAPS calculated distances are not as wrong as what the tool reports

starting from South SW Maps reports
382.184 vs Deed 382.00
221.638 vs Deed 221.66
(two calls) 1466.786 vs Deed 1467.29 (402.82+1064.47) I know there is direction change so error is greater than that
306.565 vs Deed 306.51

These results make me question the quality of the surveyors compass, as the point to point distances are very close to the deed.

and I ran a physical Milwaukee 330ft nylon tape measure for the 382, 221, and 306 segments and got almost those exact numbers too, just a bit longer due to undulations in the tape over the ground even pulled pretty tight.

@rftop - that PDF is brilliant… has good examples

5-9. In conducting a resurvey, care must be exercised to avoid disturbing satisfactory local conditions such as roads, fences, or other improvements marking subdivision-of-section lines and that may correctly define the extent of established bona fide property rights.

5-10. A dependent resurvey is a retracement and reestablishment of the lines of the original survey or of a prior resurvey in their true original positions according to the best available evidence of the positions of the original corners. The monuments, section lines, and lines of legal subdivision of the dependent resurvey represent the best possible identification of the true legal boundaries of lands alienated on the basis of the plat of the original survey. In legal contemplation and in fact, the lands contained in a certain section of the original survey and the lands contained in the corresponding section of the dependent resurvey are identical.

5-11. The determination of the best available evidence of the original survey involves consideration of both direct and collateral evidence. Direct evidence from the record of the original survey should lead to the adoption of certain points as existent corners, while both direct and collateral evidence may lead to the adoption of other points as obliterated corners. The examination and careful consideration of the bona fide rights of non-Federal interests may lead to further collateral evidence of the original survey, or may lead to a modification of the basic control of the dependent resurvey. These concepts are more fully developed in chapter VI.

It’s my understanding that the webapp will do just that, if you don’t select RTK Scale. The difference will be reported in the plot at the RTK points.
image

In Andrew’s Demo, it shows a 0.08’ distance delta (not necessarily an error). It’s obvious that the Land Surveyor performed a proper LSA for the Demo parcel, which is why the delta is insignificant in this case.

But by applying the RTK scaling, that becomes a Zero delta. It’s a simplified approach to apply a correction factor to the GNSS measurements for whatever equipment and workflow was used during the survey…right or wrong - because the intention is to find the existing monuments in the ground, not to dispute them with GNSS :wink:

With RTK Scale :

Chris, I’m guessing that your survey likely didn’t use a compass for the basis of bearing. The plat should describe what was used for the directional reference. But I’m not a Licensed Surveyor in the State of Tennessee and I’m not familiar with the minimum standards there.

1 Like

It’s written in Javascript so you can ā€œview sourceā€, per Andrew , link to post.

Yes. The GitHub link is on the page for pull requests.

GitHub

2 Likes

Great, very happy to see that. I filed an issue :slight_smile:

So you can. That’s very unusual, actually, because essentially always there are js sources and then an assembly and ā€œminificationā€ step that results in such compression that it is unreadable. This deed plotter is delightfully old-school, serving readable js that is actually the sources (ā€œpreferred form for making changesā€).

1 Like

Yes, as I find more monuments, it’s clear compass, was just a companion on the project, not a hard worker like chains!! This is very insightful as I continue to read the two PDF’s that have been referenced, then using @Andrew74 ā€˜s tool to rationalize, visualize etc. Combines with your help, Andrews and other members I am going to successfully get things marked and the firebreaks in (over the next 2-3 years while also building a house, invasive species control, erosion control… yada yada!!)

If anyone wants to change line color in KML file, here’s a brief summary… AI worked well on this one…

n a KML file, the color code ff0000ff represents Opaque Red.

KML uses a specific 8-digit hexadecimal format called aabbggrr (Alpha-Blue-Green-Red), which differs from the standard HTML/CSS #rrggbbaa or #rrggbb formats.

Breakdown of ff0000ff:

  • ff (Alpha/Opacity): Full opacity (255 in decimal).

  • 00 (Blue): No blue.

  • 00 (Green): No green.

  • ff (Red): Maximum red (255 in decimal).

Summary of KML Color Ordering

The components are written in the reverse order of typical web hex codes:

  • Red: ff0000ff

  • Green: ff00ff00

  • Blue: ffff0000

  • Yellow: ff00ffff (Red + Green)

I added a color picker option to change the polygon color. @ChrisO