I am working with Ground-Based SAR (radar) data. My task is to geocode the image. I am new to Geocoding. I was reading through various geocoding approaches that explain how to convert latitude, longitude, the height of each point in DEM (3D) to image coordinates,i.e. in 2D.

It basically uses the Range/distance between a point in DEM and GBSAR, & Angle made by True North with the line joining GBSAR and a point in DEM, to calculate the line and column number(image coordinates) for that specific point in DEM.

My task is to find the points that lie within the limits of my image and plot those specific points at their respective lat-long coordinates, on Google Earth.

My question is, If I have a tall building (like Sagrada Familia in Barcelona, Spain), where there are multiple points at a particular position where their latitude and longitude remain the same, but the heights of points change along the walls, how does one plot such points?

Please guide me; since, going by the method I follow, only one point will be plotted for each lat-long coordinate.

Edit: This is the image of Sagrada Familia. He for a particular latlong, there exist multiple points with different heights and different data values.

enter image description here

This is my code:

<?xml version='1.0' encoding='UTF-8'?>  <kml xmlns="http://www.opengis.net/kml/2.2"

<Style id='folderStyle'> 
<Style id='cpoint'> 
<coordinates>10.458405, 51.852013, 100</coordinates> 


1 Answer 1


You are trying to project data in 3 dimensions on a 2 dimension plane. Obviously, you will have to lose data somewhere.

If the objective is to have a "topdown" view of the area you have 3D data for, then all points sharing the same LatLng will have to share the same place on the image. If the objective is to represent what one would visually perceive, called a DSM (Digital surface model), where you use the Z value for each LatLng to visualize the altitude at that position (e.g. using a color gradient), you again have a number of possible approaches.

If you will only have point data in your result, you'd usually simply pick the data with the highest Z value for each LatLng and discard the rest.

If you are going to interpolate a continuous surface to cover the entire area, this - depending on the distance between your sampling points - could lead to undesired slopes between a building roof and e.g. the next sample point in the middle of the road next to it: The road would show as a rounded "trough" instead of a cutout "box". In such cases, it's recommended to keep all data points and calculate your surface on that. This will retain the bottom of cliffs/building walls and render as a discrete jump in Z values to the roof edge. When rendering a plain image/map result, just make to sure to prioritize higher Z values over lower ones in the same LatLng to avoid Z fighting.

This answer is a bit generic, because your question is generic. If you need more precise help with your issue, clarify in detail what your current methodological approach is (what tools do you use, what parameters/data do you use for each step etc.). Some insight into your source data and target might also help (area to cover, sampling rate / point spacing of GSAR), as well as explaining exactly the objective: A 3D model? A collection of LatLng (2D) points? An image? Visualizing discrete points or continuous surface?

  • Thank you for the answer. It helped me clear a lot of my doubts. I realised I could add the height parameter to points in KML file and display on Google Earth. But now I have another problem. Even after entering the height values for coordinates, Google Earth does not displays the point clamped to ground. Only after I manually change the altitude mode by clicking on each point in Google earth, do the points start showing at their assigned heights. I tried using Commented Aug 26, 2021 at 12:50
  • I tried using <altitudemode>relativetoSeaFloor</altitudemode> tag, but to no avail.I tried searching on the internet for such examples, but the only ones available, were for polygons, and not for individual placemarks/points. Commented Aug 26, 2021 at 13:00
  • For Polygon: developers.google.com/kml/documentation/altitudemode (I tried including the code snippet but it does not indent/align well in comment) So I tried the same thing for individual points. But this does not work. Is there a different way to set heights for individual points? Commented Aug 26, 2021 at 13:00
  • I've edited the question to post my code Commented Aug 26, 2021 at 13:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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