Skip to content
This repository has been archived by the owner on Aug 14, 2022. It is now read-only.

[Feature] Find octants by bounding box #25

Open
LexSong opened this issue Jan 26, 2019 · 11 comments
Open

[Feature] Find octants by bounding box #25

LexSong opened this issue Jan 26, 2019 · 11 comments

Comments

@LexSong
Copy link
Contributor

LexSong commented Jan 26, 2019

I add a python script to find overlapping octants by bounding box, instead of a single point:
https://github.com/LexSong/earth-reverse-engineering-utils

The script will stop early if it finds too many octants at the same level, so it can be used to dump large areas. I don't know javascript well enough to add the function to the main repo.

Hopefully, people will find this useful.

Example output:

> python find_overlaps.py 37.419714, -122.083275 37.420626, -122.085045
LatLonBox(north=37.420626, south=37.419714, west=-122.085045, east=-122.083275)
[Octant level 1]
2
[Octant level 2]
20
[Octant level 3]
205
[Octant level 4]
2052
[Octant level 5]
20527
[Octant level 6]
205270
[Octant level 7]
2052706
[Octant level 8]
20527061
[Octant level 9]
205270616
[Octant level 10]
2052706160
[Octant level 11]
20527061605
[Octant level 12]
205270616052
[Octant level 13]
2052706160527
[Octant level 14]
20527061605273
[Octant level 15]
205270616052735
[Octant level 16]
2052706160527351
[Octant level 17]
20527061605273514
[Octant level 18]
205270616052735141
205270616052735140
[Octant level 19]
2052706160527351416
2052706160527351417
2052706160527351415
2052706160527351414
2052706160527351405
2052706160527351407
2052706160527351406
2052706160527351404
[Octant level 20]
20527061605273514162
20527061605273514160
....
@retroplasma
Copy link
Owner

Very nice! I would link to it in the README if you don't mind. We could also merge it if we document the pip goog proto dependency; at this point the repo is just a collection of scripts anyway.

@Rakiah
Copy link

Rakiah commented Jan 26, 2019

Maybe we could use http://www.transcrypt.org to transpile python into JavaScript to have a single dependency ?

@felixgeen
Copy link

Hi there, i've been trying to get this to work but when I run the python script I get this error: Traceback (most recent call last):
File "find_overlaps.py", line 4, in
from proto.BulkOrPlanetoid_pb2 import BulkOrPlanetoid
File "C:\Users\snah\Documents\earth-reverse-engineering-master\proto\BulkOrPlanetoid_pb2.py", line 6, in
from google.protobuf import descriptor as _descriptor
ModuleNotFoundError: No module named 'google'

any idea what might be going wrong? Thank you!

@LexSong
Copy link
Contributor Author

LexSong commented Jul 24, 2019

from google.protobuf import descriptor as _descriptor
ModuleNotFoundError: No module named 'google'

any idea what might be going wrong? Thank you!

you need to install google protobuf

@psociety
Copy link

psociety commented Dec 2, 2019

@LexSong What website do you recommend to get the bounding box? I tried using coords from:
http://bboxfinder.com/ and your py output is empty:

python3.6 find_overlaps.py 41.340216 2.102509 41.465113 2.270393
LatLonBox(north=41.340216, south=2.102509, west=41.465113, east=2.270393)
[Octant level 1]
[Octant level 2]
[Octant level 3]
[Octant level 4]
[Octant level 5]
[Octant level 6]
[Octant level 7]
[Octant level 8]
[Octant level 9]
[Octant level 10]
[Octant level 11]
[Octant level 12]
[Octant level 13]
[Octant level 14]
[Octant level 15]
[Octant level 16]
[Octant level 17]
[Octant level 18]
[Octant level 19]
[Octant level 20]

I also would place a python version check at the top of the script.

@Rakiah
Copy link

Rakiah commented Dec 2, 2019

@psociety you've mixed the number around, lexsong's script uses north then south then west then east, not north west south east

@psociety
Copy link

psociety commented Dec 2, 2019

@Rakiah oh, i tried recombining them yet i got the same result:

 python3.6 find_overlaps.py 41.340216 41.465113 2.102509 2.270393
LatLonBox(north=41.340216, south=41.465113, west=2.102509, east=2.270393)
[Octant level 1]
[Octant level 2]
[Octant level 3]
[Octant level 4]
[Octant level 5]
[Octant level 6]
[Octant level 7]
[Octant level 8]
[Octant level 9]
[Octant level 10]
[Octant level 11]
[Octant level 12]
[Octant level 13]
[Octant level 14]
[Octant level 15]
[Octant level 16]
[Octant level 17]
[Octant level 18]
[Octant level 19]
[Octant level 20]

@LexSong
Copy link
Contributor Author

LexSong commented Dec 3, 2019

I assume that the north latitude should larger than south latitude?
Try 41.465113 41.340216 2.102509 2.270393

@psociety
Copy link

psociety commented Dec 3, 2019

@LexSong you're right now it does throw octants up to level 13 :)
Sorry for littering the thread.

@bhaktatejas922
Copy link

bhaktatejas922 commented Nov 15, 2020

Hey, total beginner to this stuff. Could someone explain a few things to me?

How do I use the output of this script and enter it into earth-reverse-engineering? I have the bounding box of a building I want a model for and I'm not really sure how to use the output in earth-reverse-engineering.

Also, what do the levels mean? For example, what does specifying the max level here mean?

#Dump octant with max-level 20
node dump_obj.js 20527061605273514 20 

@psociety
Copy link

psociety commented Nov 16, 2020

@bhaktatejas922 Level is the zoom, go to google maps and zoom in, you will see how a z var changes in the url. It obviously has a max zoom and not all areas have the same.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants