1

I am trying to draw the layout of a building and project them to a web map using Django and Leaflet. I am using a satellite image to get the correct latitude and longitude and then I send the coordinates via an API. The process in short:

  • Get lat/lon from a satellite image
  • Send coordinates to webmap with SRID 4326
  • Display the outlines

My main problem with almost all my coordinates is that the Google Maps satellite layer is not congruent to the street view. For example let's say I pinpoint lat: 50.11843503887959 and long 8.63194562490686 to Google Maps. I get the following image in satellite view:

satellite_view

Note that the point is exactly on the edge. But if I change the layer to the normal map view I get this result:

map_view

Note that the point is about 1cm to the right within the building. This happens to almost all buildings I am trying to pinpoint. Sometimes it's to the left and sometimes it's to the right.

I read here EPSG 3857 or 4326 for GoogleMaps, OpenStreetMap and Leaflet, that:

  • Google Earth is in a Geographic coordinate system with the WGS84 datum. (EPSG: 4326)
  • Google Maps is in a projected coordinate system that is based on the WGS84 datum. (EPSG 3857)

Thus, I went ahead and transformed the satellite coordinates EPSG: 4326 to EPSG 3857 and sent those to my database. It gives me the same derivations.

I assume that since the Earth is round and a map is flat those derivations exist, but I am not sure.

Plus I somehow need to iron out these differences. Is there a way I can get coordinates of a building from a satellite layer to map the outlines of the same building on the map layer? If so, how could I do it?

(Had this on SO (https://stackoverflow.com/questions/66366572/) first but removing it there since it might be better suited here)

7
  • One centimeter alignment issues with reprojection of even 10cm imagery is not at all remarkable. – Vince Feb 25 at 12:50
  • @Vince Thank you.... I'm not an expert on this so could you maybe explain to me why this happens even though it is "not remarkable" – shadow Feb 25 at 13:00
  • Reprojection of an image fundamentally changes the pixels (they change shape, rotation, and alignment). Attempting to obtain precision smaller than the pixel size is an exercise in error probability. – Vince Feb 25 at 13:07
  • 1
    Accuracy from a satellite can often be measured in meters. If you have airborne high-resolution imagery, you should do the mensuration there. – Vince Feb 25 at 13:26
  • 3
3

You're unlikely to get the accuracy and precision you're looking for from the imagery on Google Maps. While aerial imagery can often be quite accurate, remember that it's taken from a moving aircraft where the camera is constantly moving and tilting, so calculating the real-world position of each pixel in each image is a hard process, with a wide range of variability depending on many factors. All those images from the aircraft are then stitched together as well as possible, to minimize their collective positioning errors. The process keeps getting better, but certainly not perfect, and small (or occasionally large) errors do appear.

As mentioned in the comments, it also depends on the resolution of the image. For imagery of the kind in your example, it is often just a few cm off, but sometimes it will be a few meters, 10's of meters, or more off from the "real" coordinates. Add to that the fact that the "map" view (with the road and building lines) was likely digitized from a different (earlier) image with different positioning errors, and it's very common that something in the aerial imagery doesn't line up perfectly with something in the map view. [FYI that "Street View" is the name for the ground-level images taken from vehicles, which you can also find in Google Maps].

Note that the latitude and longitude you listed contain 14 decimal places of precision. Given that 7 decimal places gets you down to mm or um precision (depends on distance from equator), I hope you'll be able to work with many fewer decimal places.

So... you can certainly draw things based on the imagery, and have it be quite accurate down to some level of precision, but if you need anywhere close to cm precision, then you will likely need to hire a surveyor to map the property. If all you need is for the things you draw to be accurate relative to each other, then you should be fine as long as you're digitizing off of just one image. But if you also need them to be very accurate and precise to real-world coordinates, then you'll need some way to ground-truth one or more points on your map, and adjust everything accordingly.

1
  • Thank you for this comprehensible and detailed explanation! Very much appreciated. I was hoping I could somehow account for this difference, but as you explain it very nicely I understand now that this is not really possible – shadow Mar 1 at 7:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.