import requests
import sys

host="localhost"

"""
pos1 = (46.195466, -1.237197)
pos2 = (46.142542, -1.112825)

dx = (pos2[0] - pos1[0])/100
dy = (pos2[1] - pos1[1])/100
"""

"""
print(dx, dy)
print(pos1[0] + 10 * dx)
print(pos1[1] + 10 * dy)
"""

def retrieve_data(file_name,latitude_1,longitude_1,latitude_2,longitude_2):

    pos_1 = (latitude_1, longitude_1)
    pos_2 = (latitude_2, longitude_2)
    dx = (pos_2[0] - pos_1[0]) / 100
    dy = (pos_2[1] - pos_1[1]) / 100
    
    with open(file_name, "w", encoding="utf-8") as f:

        i = 1
        x = pos_1[0]
        while x > pos_2[0]:
            
            y = pos_1[1]
            while y < pos_2[1]:
                
                #print(i, x, y)

                url = f"http://{host}:5000/v1/eudem25m"
                #print("URL=",url)
                params = {"locations": str(x) + "," + str(y)}
                resp = requests.get(url, params=params)
                #pprint(resp)
                res = resp.json()['results'][0]["elevation"]   # parse JSON automatically
                if res == None:
                    res = 0
                f.write(f"{x} {y} {res}\n")

                y += dy
                i += 1

            #print("===")
            x += dx 

if __name__ == "__main__":
    latitude_1 = 46.195466
    latitude_2 = 46.142542
    longitude_1 = -1.237197
    longitude_2 = -1.112825
    if not (len(sys.argv) in range(6,8)):
        print(f"error: program needs 5 or 6 arguments only {len(sys.argv)-1} provided")
        print("file_name latitude_1 longitude_1 latitude_2 longitude_2 [host]")
    else:
        file_name = sys.argv[1]
        if len(sys.argv) == 7:
            host = sys.argv[6]

        print(f"host={host}")
        retrieve_data(file_name,latitude_1,longitude_1,latitude_2,longitude_2)
        print(f"output end to file {file_name}")