retroplasma / earth-reverse-engineering

Reversing Google's 3D satellite mode
2.23k stars 213 forks source link

Find altitude out of an octant ? #29

Open Rakiah opened 5 years ago

Rakiah commented 5 years ago

Hey guys, as stated in another issue i've been working on a process to dump large areas that are actually usable in 3d engine or possible to stream over a sig server, but what lack my system is actually the altitude

I can display my tiles next to each other and this blend kind of nicely except when there is an altitude difference between the tiles

would you think it'd be possible to actually the actual elevation of a tile ?

LexSong commented 5 years ago

See #30, I think it's better to normalize all tiles with the same reference point, instead of normalize each tile individually and try to fix the height differences later.

desmondCTNG commented 4 years ago

can someone find the height? coz using the same referencing point to normalize tiles is accurate only when the tiles are near each other.

When you download a large area, to prevent having not enough memory, you are forced to place the objects in multiple Blender files. This makes it hard to adjust the height manually. Only way to solve is to find the height of the tiles.

zephirus commented 4 years ago

When you create a tile or group of tiles, normalize only the first one and use the mid_point for everything else.

For the case where you want multiple blende files, when you create the second set of tiles, resuse again the same mid_point from the first tile of the first set of tiles created.

You will get perfect geometry everytime,

zephirus commented 4 years ago

Is there any why to know what is the z-axis value of a tile? From what I see, this is not yet something that is available in the code.

desmondCTNG commented 4 years ago

It is true you can normalize a small area, what about a large area? You may need another reference points.

zephirus commented 4 years ago

Hi,

Thanks for the reply. What you mean is that even if you normalize you really don't have any idea of the height of any zone. I mean, that information is not available at all.

On Thu, Sep 3, 2020 at 5:16 PM desmondCTNG notifications@github.com wrote:

It is true you can normalize a small area, what about a large area? You may need another reference points.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/retroplasma/earth-reverse-engineering/issues/29#issuecomment-686601766, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUC4QLQ5WATWMFSBKGK5Y3SD66PPANCNFSM4GUG4XCQ .

nmielcarek commented 4 years ago

The position and altitude is encoded into each vertex of the obj file data. Due to being in ECEF format it may not be obvious, but you can use a tool or library to convert to Lat/Lon/Alt (see convertecef.com for a quick check).

fs2020medan commented 3 years ago

What does the obj vertice z axis tell you ? can we assume it must be in meter ?

also aint there is something when you retrieve from metadata server ? for example from another script

` var meta = getMeta(data.matrixGlobeFromMesh);

    if (id.length == maxLod)
    {
        lodMap.set(id, { matrix: data.matrixMeshFromGlobe, scale: meta.size});
    }
    else
    {
        var parentTransform = lodMap.get(id.substring(0, maxLod));
    }

    fs.writeFileSync(`${folder}\\${id}.pos`, JSON.stringify(meta.position));`
HakkaTjakka commented 3 years ago

Here a python script for use with bte121 /tpll conversion. It has lines of code to get height of geo coord. https://github.com/HakkaTjakka/MinecraftWorldEditor/tree/master/project-obj has .bat for converting into a .exe. For the height you need to adapt the script. Uses Python numpy and gnius lib. It uses ellipsoid for getting height and is quite close...