jorl17 / open-elevation Goto Github PK
View Code? Open in Web Editor NEWA free and open-source alternative to Google Elevation API. Host your own! https://open-elevation.com
License: GNU General Public License v2.0
A free and open-source alternative to Google Elevation API. Host your own! https://open-elevation.com
License: GNU General Public License v2.0
Hi, I've been experimenting with self-hosting open-elevation on an 8GB Raspberry Pi 4 for a project of mine. Would it be possible to modify the Dockerfile to use an ARM64 and AMD64 compatible base image? I've done basic testing (no SSL) using osgeo/gdal:ubuntu-small-latest rather than osgeo/gdal:ubuntu-small-latest-amd-64 and the API appears to be working:
I can put together a PR if you want
I am able to access other https based web-apis but getting errors here. Previously public API worked pretty reliably. I even set up the the local version and it gives similar errors.
r = requests.get('https://api.open-elevation.com/api/v1/lookup?locations=20,20')
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 159, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "/usr/local/lib/python3.5/dist-packages/urllib3/util/connection.py", line 57, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 839, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 301, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 168, in _new_conn
self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x7fa1435015c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/local/lib/python3.5/dist-packages/urllib3/util/retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.open-elevation.com', port=443): Max retries exceeded with url: /api/v1/lookup?locations=20,20 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fa1435015c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.5/dist-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.open-elevation.com', port=443): Max retries exceeded with url: /api/v1/lookup?locations=20,20 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fa1435015c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
I noticed that commit 48ec871 isn't included in the latest Docker publish. Would you be able to publish that please? Thanks for open-elevation.
Hello ! I'll start by saying that what you're doing is awesome and it helps a lot, really !
So, i try to make a big POST request of coordinates (around 6 000) and i'm sure i format the JSON sent in the way required in the docs, but i keep getting the data {"error": "Invalid JSON."} anyway.
Just to be clear, it is only exceptionnal requests, at most once a week, but am i overloading the server ?
Or am i forgetting something obvious ?
Hi,
I have tried the example request curl https://api.open-elevation.com/api/v1/lookup\?locations\=10,10\|20,20\|41.161758,-8.583933 and I get the following response:
<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.13.5</center>
</body>
</html>
What am I doing wrong?
Thanks.
Why elevation without fractional part? Why dont change of value precision for elevation in answer?
Would it be possible to update the "Host your own" documentation to provide instruction/code to download the SRTM-30m files for use with open-elevation. PS. Been using your server heavily, so sent a donation. In process of installing open-elevation on my own server.
Hello. I want to download your project to run it locally but something seems to be offline. Docker image also is offline.
Hi!
May I host Open-Elevation on Windows. If this possible, how?
I'm trying to fix altitude values in my GPX file. But I can't connect to api.open-elevation.com and IP address 46.101.224.40. Connection failed with wget. Ping failed too: 100% packet loss
. Is any problem with IP address of my VPS? Everything works without problem from home.
Hi,
First thanks a lot for your very handy service!
It is great!
The service open-elevation API is down at the moment!
Rgds,
Olivier
Hi,
So, we are doing JSON POST to our own dems server using this branch. And this works really well for small set of JSON but if I post a very large JSON ~200KB it fails with message:
{
"error": "Invalid JSON."
}
I've set
memory_limit : 128M
post_max_size : 16M
upload_max_filesize: 16M
I do not think anything else if required for a large JSON to work with but it always fail with error.
Any idea what I am missing?
Thank You
Hi guys, really appreciate your work. Is there any requests limit/quota?
See this issue in separate repo for a description. The current implementation is too limited to be of wide practical use because python bottle uses a rather restricted default upper limit for memory buffer (code currently here). This could easily be circumvented by appending the following line to the top of the server.py
script:
bottle.BaseRequest.MEMFILE_MAX = <something really big>
Might up the server load a bit, but would make it a lot more useful. Any chance of implementing that?
Hello we've been using the open elevation api in an app we are working on for a few months.
For some reason when I was testing today I noticed the call to get the elevation to;
https://api.open-elevation.com/api/v1/lookup
was returning a 500 server error like so;
`
<title>500 Internal Server Error</title>
I'm adament this was working as recently as Friday with exactly the same data.
Here's the json body of the request the app is sending if that helps;
{"locations":[{"latitude":-41.21343,"longitude":174.81054},{"latitude":-41.21007,"longitude":174.81228000000002},{"latitude":-41.20718,"longitude":174.81186000000002},{"latitude":-41.20389,"longitude":174.81492},{"latitude":-41.203950000000006,"longitude":174.81595000000002},{"latitude":-41.204660000000004,"longitude":174.81854},{"latitude":-41.203540000000004,"longitude":174.82162000000002},{"latitude":-41.197720000000004,"longitude":174.82458000000003},{"latitude":-41.193940000000005,"longitude":174.82951000000003},{"latitude":-41.186440000000005,"longitude":174.83214},{"latitude":-41.181360000000005,"longitude":174.82883},{"latitude":-41.17313,"longitude":174.83082000000002},{"latitude":-41.15881,"longitude":174.83709000000002},{"latitude":-41.147420000000004,"longitude":174.84374000000003},{"latitude":-41.13947,"longitude":174.84471000000002},{"latitude":-41.1287,"longitude":174.84489000000002},{"latitude":-41.11077,"longitude":174.86144000000002},{"latitude":-41.1058,"longitude":174.86772000000002},{"latitude":-41.103790000000004,"longitude":174.86969000000002},{"latitude":-41.093320000000006,"longitude":174.86890000000002},{"latitude":-41.08944,"longitude":174.86686},{"latitude":-41.082750000000004,"longitude":174.86904},{"latitude":-41.075300000000006,"longitude":174.87462000000002},{"latitude":-41.0643,"longitude":174.87733},{"latitude":-41.052710000000005,"longitude":174.87740000000002},{"latitude":-41.04749,"longitude":174.87902000000003},{"latitude":-41.03728,"longitude":174.8855},{"latitude":-41.033190000000005,"longitude":174.88909},{"latitude":-41.033030000000004,"longitude":174.89287000000002},{"latitude":-41.030620000000006,"longitude":174.89695},{"latitude":-41.02604,"longitude":174.90182000000001},{"latitude":-41.01711,"longitude":174.9153},{"latitude":-41.01012,"longitude":174.92296000000002},{"latitude":-41.005700000000004,"longitude":174.92724},{"latitude":-41.002860000000005,"longitude":174.93427000000003},{"latitude":-40.991200000000006,"longitude":174.94946000000002},{"latitude":-40.986470000000004,"longitude":174.95725000000002},{"latitude":-40.98257,"longitude":174.96167000000003},{"latitude":-40.98091,"longitude":174.97454000000002},{"latitude":-40.97569,"longitude":174.97865000000002},{"latitude":-40.970780000000005,"longitude":174.98304000000002},{"latitude":-40.953030000000005,"longitude":174.98862000000003},{"latitude":-40.93558,"longitude":174.99454},{"latitude":-40.92935000000001,"longitude":174.99244000000002},{"latitude":-40.91714,"longitude":174.99193000000002},{"latitude":-40.908170000000005,"longitude":175.00007000000002},{"latitude":-40.89077,"longitude":175.02238000000003},{"latitude":-40.8789,"longitude":175.02685000000002},{"latitude":-40.86809,"longitude":175.03535000000002},{"latitude":-40.863640000000004,"longitude":175.04523},{"latitude":-40.858430000000006,"longitude":175.05429},{"latitude":-40.850460000000005,"longitude":175.06437000000003},{"latitude":-40.845290000000006,"longitude":175.08142},{"latitude":-40.828320000000005,"longitude":175.09613000000002},{"latitude":-40.81898,"longitude":175.10781},{"latitude":-40.8029,"longitude":175.12075000000002},{"latitude":-40.78183000000001,"longitude":175.13744000000003},{"latitude":-40.77018,"longitude":175.14520000000002},{"latitude":-40.76565,"longitude":175.14970000000002},{"latitude":-40.76034000000001,"longitude":175.15745},{"latitude":-40.75836,"longitude":175.16145},{"latitude":-40.75182,"longitude":175.16682},{"latitude":-40.74403,"longitude":175.16966000000002},{"latitude":-40.74016,"longitude":175.18039000000002},{"latitude":-40.734700000000004,"longitude":175.19122000000002},{"latitude":-40.73339,"longitude":175.20019000000002},{"latitude":-40.725350000000006,"longitude":175.2115},{"latitude":-40.71916,"longitude":175.21377},{"latitude":-40.699850000000005,"longitude":175.22362},{"latitude":-40.69556,"longitude":175.22942},{"latitude":-40.68404,"longitude":175.23984000000002},{"latitude":-40.67011,"longitude":175.24139000000002},{"latitude":-40.66516,"longitude":175.24837000000002},{"latitude":-40.656180000000006,"longitude":175.25197000000003},{"latitude":-40.62917,"longitude":175.27959},{"latitude":-40.617360000000005,"longitude":175.29132},{"latitude":-40.610510000000005,"longitude":175.299},{"latitude":-40.592960000000005,"longitude":175.29923000000002},{"latitude":-40.5765,"longitude":175.27267},{"latitude":-40.57314,"longitude":175.26878000000002},{"latitude":-40.566790000000005,"longitude":175.2655},{"latitude":-40.556110000000004,"longitude":175.26852000000002},{"latitude":-40.538940000000004,"longitude":175.27621000000002},{"latitude":-40.519780000000004,"longitude":175.27575000000002},{"latitude":-40.500960000000006,"longitude":175.28371},{"latitude":-40.494620000000005,"longitude":175.27953000000002},{"latitude":-40.485040000000005,"longitude":175.28287},{"latitude":-40.473530000000004,"longitude":175.28554000000003},{"latitude":-40.46533,"longitude":175.28871},{"latitude":-40.42915,"longitude":175.30214},{"latitude":-40.38069,"longitude":175.3187},{"latitude":-40.332040000000006,"longitude":175.34432},{"latitude":-40.29061,"longitude":175.36439000000001},{"latitude":-40.26565,"longitude":175.37957},{"latitude":-40.22005,"longitude":175.42399},{"latitude":-40.208090000000006,"longitude":175.40703000000002},{"latitude":-40.200500000000005,"longitude":175.39337},{"latitude":-40.19115,"longitude":175.38865},{"latitude":-40.17363,"longitude":175.38661000000002},{"latitude":-40.15437,"longitude":175.40401000000003},{"latitude":-40.139410000000005,"longitude":175.41770000000002},{"latitude":-40.13266,"longitude":175.41856},{"latitude":-40.122890000000005,"longitude":175.41941000000003},{"latitude":-40.08597,"longitude":175.41260000000003},{"latitude":-40.06917,"longitude":175.41892},{"latitude":-40.0484,"longitude":175.43631000000002},{"latitude":-40.035540000000005,"longitude":175.44437000000002},{"latitude":-40.0306,"longitude":175.45191000000003},{"latitude":-40.02772,"longitude":175.46614000000002},{"latitude":-40.020860000000006,"longitude":175.48044000000002},{"latitude":-40.000910000000005,"longitude":175.50847000000002},{"latitude":-39.99419,"longitude":175.51517},{"latitude":-39.979380000000006,"longitude":175.52117},{"latitude":-39.97104,"longitude":175.52072},{"latitude":-39.96603,"longitude":175.52389000000002},{"latitude":-39.963010000000004,"longitude":175.53383000000002},{"latitude":-39.95754,"longitude":175.54795000000001},{"latitude":-39.95264,"longitude":175.56594},{"latitude":-39.94337,"longitude":175.56927000000002},{"latitude":-39.93567,"longitude":175.56993000000003},{"latitude":-39.932320000000004,"longitude":175.57488},{"latitude":-39.92822,"longitude":175.57827},{"latitude":-39.9253,"longitude":175.58717000000001},{"latitude":-39.922200000000004,"longitude":175.59355000000002},{"latitude":-39.924690000000005,"longitude":175.60669000000001},{"latitude":-39.926410000000004,"longitude":175.61332000000002},{"latitude":-39.924200000000006,"longitude":175.621},{"latitude":-39.924260000000004,"longitude":175.62983000000003},{"latitude":-39.91283000000001,"longitude":175.63596},{"latitude":-39.89016,"longitude":175.66347000000002},{"latitude":-39.88158000000001,"longitude":175.67422000000002},{"latitude":-39.876920000000005,"longitude":175.67459000000002},{"latitude":-39.87209,"longitude":175.68069000000003},{"latitude":-39.870630000000006,"longitude":175.68952000000002},{"latitude":-39.865570000000005,"longitude":175.69978},{"latitude":-39.85463,"longitude":175.72644000000003},{"latitude":-39.841860000000004,"longitude":175.74172000000002},{"latitude":-39.836400000000005,"longitude":175.77074000000002},{"latitude":-39.83184000000001,"longitude":175.78056},{"latitude":-39.827940000000005,"longitude":175.78127},{"latitude":-39.82372,"longitude":175.77643},{"latitude":-39.81275,"longitude":175.78474000000003},{"latitude":-39.806810000000006,"longitude":175.79562},{"latitude":-39.803470000000004,"longitude":175.79852000000002},{"latitude":-39.79921,"longitude":175.79680000000002},{"latitude":-39.796820000000004,"longitude":175.78962},{"latitude":-39.792500000000004,"longitude":175.78495},{"latitude":-39.779070000000004,"longitude":175.787},{"latitude":-39.77423,"longitude":175.79129},{"latitude":-39.760560000000005,"longitude":175.80521000000002},{"latitude":-39.758370000000006,"longitude":175.81326},{"latitude":-39.76041,"longitude":175.82257},{"latitude":-39.75755,"longitude":175.82834000000003},{"latitude":-39.751090000000005,"longitude":175.8343},{"latitude":-39.744490000000006,"longitude":175.83479000000003},{"latitude":-39.7409,"longitude":175.83839},{"latitude":-39.73617,"longitude":175.84145},{"latitude":-39.731550000000006,"longitude":175.84389000000002},{"latitude":-39.71177,"longitude":175.83747000000002},{"latitude":-39.69722,"longitude":175.82419000000002},{"latitude":-39.68672,"longitude":175.80730000000003},{"latitude":-39.68506,"longitude":175.80519},{"latitude":-39.684610000000006,"longitude":175.80135},{"latitude":-39.676930000000006,"longitude":175.79819},{"latitude":-39.67443,"longitude":175.79409},{"latitude":-39.66613,"longitude":175.78476},{"latitude":-39.65955,"longitude":175.78092},{"latitude":-39.65341,"longitude":175.77227000000002},{"latitude":-39.646710000000006,"longitude":175.76797000000002},{"latitude":-39.6357,"longitude":175.76815000000002},{"latitude":-39.6287,"longitude":175.76042},{"latitude":-39.62342,"longitude":175.76103},{"latitude":-39.61751,"longitude":175.76161000000002},{"latitude":-39.61218,"longitude":175.76004},{"latitude":-39.60408,"longitude":175.76076},{"latitude":-39.59756,"longitude":175.76467000000002},{"latitude":-39.59369,"longitude":175.76339000000002},{"latitude":-39.59208,"longitude":175.75422},{"latitude":-39.59194,"longitude":175.74511},{"latitude":-39.58035,"longitude":175.72420000000002},{"latitude":-39.57898,"longitude":175.71672},{"latitude":-39.572120000000005,"longitude":175.70961000000003},{"latitude":-39.568110000000004,"longitude":175.70006},{"latitude":-39.564080000000004,"longitude":175.69762},{"latitude":-39.56006,"longitude":175.69968},{"latitude":-39.55427,"longitude":175.69542},{"latitude":-39.550520000000006,"longitude":175.68627},{"latitude":-39.54142,"longitude":175.68247000000002},{"latitude":-39.53423,"longitude":175.68060000000003},{"latitude":-39.52474,"longitude":175.6842},{"latitude":-39.51371,"longitude":175.68422},{"latitude":-39.50567,"longitude":175.67467000000002},{"latitude":-39.499230000000004,"longitude":175.67403000000002},{"latitude":-39.48771,"longitude":175.67030000000003},{"latitude":-39.477700000000006,"longitude":175.66837},{"latitude":-39.46501000000001,"longitude":175.67299000000003},{"latitude":-39.4472,"longitude":175.6798},{"latitude":-39.439350000000005,"longitude":175.68168000000003},{"latitude":-39.42036,"longitude":175.68716},{"latitude":-39.39914,"longitude":175.6981},{"latitude":-39.382670000000005,"longitude":175.7093},{"latitude":-39.31987,"longitude":175.72906},{"latitude":-39.303490000000004,"longitude":175.74118},{"latitude":-39.286910000000006,"longitude":175.74112000000002},{"latitude":-39.28177,"longitude":175.74308000000002},{"latitude":-39.27819,"longitude":175.74426000000003},{"latitude":-39.269450000000006,"longitude":175.7373},{"latitude":-39.26465,"longitude":175.73298000000003},{"latitude":-39.24989,"longitude":175.73608000000002},{"latitude":-39.241620000000005,"longitude":175.72682},{"latitude":-39.237660000000005,"longitude":175.72734000000003},{"latitude":-39.2314,"longitude":175.73494000000002},{"latitude":-39.21905,"longitude":175.73477000000003},{"latitude":-39.2152,"longitude":175.73905000000002},{"latitude":-39.209250000000004,"longitude":175.74868},{"latitude":-39.20485,"longitude":175.75583},{"latitude":-39.199670000000005,"longitude":175.7564},{"latitude":-39.193580000000004,"longitude":175.75592},{"latitude":-39.18751,"longitude":175.757},{"latitude":-39.185370000000006,"longitude":175.76079000000001},{"latitude":-39.18388,"longitude":175.76586},{"latitude":-39.182500000000005,"longitude":175.76308},{"latitude":-39.18281,"longitude":175.75859000000003},{"latitude":-39.180330000000005,"longitude":175.76113},{"latitude":-39.17996,"longitude":175.76339000000002},{"latitude":-39.17969,"longitude":175.7656},{"latitude":-39.17922,"longitude":175.76836},{"latitude":-39.17578,"longitude":175.76905000000002},{"latitude":-39.174040000000005,"longitude":175.76752000000002},{"latitude":-39.17344000000001,"longitude":175.76542},{"latitude":-39.170190000000005,"longitude":175.76615},{"latitude":-39.158730000000006,"longitude":175.76911},{"latitude":-39.156980000000004,"longitude":175.76814000000002},{"latitude":-39.15619,"longitude":175.76531000000003},{"latitude":-39.154590000000006,"longitude":175.76959000000002},{"latitude":-39.15415,"longitude":175.7672},{"latitude":-39.15316,"longitude":175.76807000000002},{"latitude":-39.14217,"longitude":175.77264000000002},{"latitude":-39.120250000000006,"longitude":175.79957000000002},{"latitude":-39.108140000000006,"longitude":175.80737000000002},{"latitude":-39.09091,"longitude":175.80890000000002},{"latitude":-39.076220000000006,"longitude":175.80898000000002},{"latitude":-39.065470000000005,"longitude":175.81833},{"latitude":-39.05324,"longitude":175.8206},{"latitude":-39.043150000000004,"longitude":175.8145},{"latitude":-39.03842,"longitude":175.81604000000002},{"latitude":-39.02178,"longitude":175.80919},{"latitude":-39.001470000000005,"longitude":175.80398000000002},{"latitude":-38.99537,"longitude":175.80557000000002},{"latitude":-38.9887,"longitude":175.81511},{"latitude":-38.98322,"longitude":175.82018000000002},{"latitude":-38.97858,"longitude":175.82776},{"latitude":-38.955540000000006,"longitude":175.84036},{"latitude":-38.95367,"longitude":175.84374000000003},{"latitude":-38.950010000000006,"longitude":175.84896},{"latitude":-38.94502000000001,"longitude":175.85145000000003},{"latitude":-38.94241,"longitude":175.85641},{"latitude":-38.93829,"longitude":175.86044},{"latitude":-38.935950000000005,"longitude":175.86867},{"latitude":-38.92974,"longitude":175.87834},{"latitude":-38.92568,"longitude":175.88645000000002},{"latitude":-38.917460000000005,"longitude":175.89294},{"latitude":-38.91187,"longitude":175.89946},{"latitude":-38.91017,"longitude":175.905},{"latitude":-38.90708,"longitude":175.92228},{"latitude":-38.9057,"longitude":175.93171},{"latitude":-38.904970000000006,"longitude":175.93937000000003},{"latitude":-38.895590000000006,"longitude":175.94733000000002},{"latitude":-38.887130000000006,"longitude":175.95371},{"latitude":-38.88741,"longitude":175.95979000000003},{"latitude":-38.882870000000004,"longitude":175.96662},{"latitude":-38.883340000000004,"longitude":175.96837000000002},{"latitude":-38.881220000000006,"longitude":175.971},{"latitude":-38.88035,"longitude":175.97499000000002},{"latitude":-38.878400000000006,"longitude":175.98231},{"latitude":-38.87874,"longitude":175.98514},{"latitude":-38.87726,"longitude":175.98901},{"latitude":-38.875460000000004,"longitude":175.99154000000001},{"latitude":-38.875800000000005,"longitude":175.9983},{"latitude":-38.873000000000005,"longitude":176.00363000000002},{"latitude":-38.866460000000004,"longitude":176.00791},{"latitude":-38.85661,"longitude":176.01285000000001},{"latitude":-38.85316,"longitude":176.02337000000003},{"latitude":-38.85286,"longitude":176.03038},{"latitude":-38.85398,"longitude":176.03856000000002},{"latitude":-38.855830000000005,"longitude":176.04803},{"latitude":-38.854000000000006,"longitude":176.05234000000002},{"latitude":-38.84384,"longitude":176.05924000000002},{"latitude":-38.83587,"longitude":176.06500000000003},{"latitude":-38.825320000000005,"longitude":176.06906},{"latitude":-38.81716,"longitude":176.07757},{"latitude":-38.80702,"longitude":176.07938000000001},{"latitude":-38.79956000000001,"longitude":176.07652000000002},{"latitude":-38.78728,"longitude":176.07641},{"latitude":-38.769450000000006,"longitude":176.07609000000002},{"latitude":-38.741440000000004,"longitude":176.07274},{"latitude":-38.738910000000004,"longitude":176.07253},{"latitude":-38.735780000000005,"longitude":176.07557000000003},{"latitude":-38.715230000000005,"longitude":176.10641},{"latitude":-38.70667,"longitude":176.11179},{"latitude":-38.70429,"longitude":176.11175},{"latitude":-38.698890000000006,"longitude":176.11215},{"latitude":-38.68339,"longitude":176.11454},{"latitude":-38.677060000000004,"longitude":176.11681000000002},{"latitude":-38.67226,"longitude":176.11419},{"latitude":-38.669380000000004,"longitude":176.10591000000002},{"latitude":-38.665380000000006,"longitude":176.10138},{"latitude":-38.641850000000005,"longitude":176.09930000000003},{"latitude":-38.637150000000005,"longitude":176.09723000000002},{"latitude":-38.62379,"longitude":176.09961},{"latitude":-38.621340000000004,"longitude":176.09882000000002},{"latitude":-38.60918,"longitude":176.09161},{"latitude":-38.60571,"longitude":176.08171000000002},{"latitude":-38.60305,"longitude":176.07005},{"latitude":-38.59492,"longitude":176.06132000000002},{"latitude":-38.58952,"longitude":176.05841},{"latitude":-38.58558,"longitude":176.06337000000002},{"latitude":-38.57858,"longitude":176.06041000000002},{"latitude":-38.572340000000004,"longitude":176.05130000000003},{"latitude":-38.556090000000005,"longitude":176.04449000000002},{"latitude":-38.54514,"longitude":176.04291},{"latitude":-38.533730000000006,"longitude":176.05183000000002},{"latitude":-38.52676,"longitude":176.04902},{"latitude":-38.517210000000006,"longitude":176.04632},{"latitude":-38.495580000000004,"longitude":176.05272000000002},{"latitude":-38.48425,"longitude":176.0543},{"latitude":-38.472500000000004,"longitude":176.05900000000003},{"latitude":-38.462790000000005,"longitude":176.05869},{"latitude":-38.45423,"longitude":176.05827000000002},{"latitude":-38.43905,"longitude":176.05895},{"latitude":-38.425520000000006,"longitude":176.05707},{"latitude":-38.409580000000005,"longitude":176.05221},{"latitude":-38.40122,"longitude":176.04991},{"latitude":-38.396460000000005,"longitude":176.03852},{"latitude":-38.39481,"longitude":176.0201},{"latitude":-38.39166,"longitude":176.01229},{"latitude":-38.38251,"longitude":176.00422},{"latitude":-38.374700000000004,"longitude":176.00056},{"latitude":-38.36535000000001,"longitude":176.00263},{"latitude":-38.360730000000004,"longitude":176.00201},{"latitude":-38.35432,"longitude":176.00509000000002},{"latitude":-38.345470000000006,"longitude":176.00723000000002},{"latitude":-38.33408,"longitude":176.00378},{"latitude":-38.326600000000006,"longitude":175.99209000000002},{"latitude":-38.316230000000004,"longitude":175.97961},{"latitude":-38.309340000000006,"longitude":175.97043000000002},{"latitude":-38.30151,"longitude":175.96485},{"latitude":-38.299490000000006,"longitude":175.95945},{"latitude":-38.298370000000006,"longitude":175.94172},{"latitude":-38.293330000000005,"longitude":175.93559000000002},{"latitude":-38.28869,"longitude":175.93223},{"latitude":-38.2873,"longitude":175.92139},{"latitude":-38.28562,"longitude":175.91461},{"latitude":-38.28042000000001,"longitude":175.90416000000002},{"latitude":-38.26914,"longitude":175.89961000000002},{"latitude":-38.2639,"longitude":175.89865},{"latitude":-38.259040000000006,"longitude":175.89415000000002},{"latitude":-38.25113,"longitude":175.88845},{"latitude":-38.23711,"longitude":175.88143000000002},{"latitude":-38.22111,"longitude":175.87482000000003},{"latitude":-38.21464,"longitude":175.87108},{"latitude":-38.210420000000006,"longitude":175.86912},{"latitude":-38.197860000000006,"longitude":175.86827000000002},{"latitude":-38.186040000000006,"longitude":175.86188},{"latitude":-38.17987,"longitude":175.86174000000003},{"latitude":-38.17633,"longitude":175.86040000000003},{"latitude":-38.17259,"longitude":175.85936},{"latitude":-38.16821,"longitude":175.85590000000002},{"latitude":-38.15936000000001,"longitude":175.85644000000002},{"latitude":-38.156670000000005,"longitude":175.85319},{"latitude":-38.145500000000006,"longitude":175.84781},{"latitude":-38.13882,"longitude":175.82825000000003},{"latitude":-38.1327,"longitude":175.82496},{"latitude":-38.124100000000006,"longitude":175.8266},{"latitude":-38.118190000000006,"longitude":175.82437000000002},{"latitude":-38.09984,"longitude":175.81683},{"latitude":-38.0861,"longitude":175.8102},{"latitude":-38.08372,"longitude":175.80747000000002},{"latitude":-38.07875000000001,"longitude":175.79525},{"latitude":-38.07271,"longitude":175.79153000000002},{"latitude":-38.06725,"longitude":175.78948000000003},{"latitude":-38.063680000000005,"longitude":175.79238},{"latitude":-38.05787,"longitude":175.78885000000002},{"latitude":-38.054460000000006,"longitude":175.78343},{"latitude":-38.050520000000006,"longitude":175.78017000000003},{"latitude":-38.04554,"longitude":175.78150000000002},{"latitude":-38.0412,"longitude":175.78528},{"latitude":-38.04032,"longitude":175.78737},{"latitude":-38.035630000000005,"longitude":175.78920000000002},{"latitude":-38.0276,"longitude":175.78917},{"latitude":-38.01019,"longitude":175.77302},{"latitude":-38.00169,"longitude":175.76732},{"latitude":-37.995720000000006,"longitude":175.76746000000003},{"latitude":-37.98989,"longitude":175.76672000000002},{"latitude":-37.986560000000004,"longitude":175.76814000000002},{"latitude":-37.985310000000005,"longitude":175.76680000000002},{"latitude":-37.980990000000006,"longitude":175.76272},{"latitude":-37.98049,"longitude":175.76002000000003},{"latitude":-37.97598,"longitude":175.75486},{"latitude":-37.97504,"longitude":175.74963000000002},{"latitude":-37.974230000000006,"longitude":175.74585000000002},{"latitude":-37.97486,"longitude":175.74295},{"latitude":-37.982780000000005,"longitude":175.73457000000002},{"latitude":-37.98617,"longitude":175.72606000000002},{"latitude":-37.98559,"longitude":175.71560000000002},{"latitude":-37.983720000000005,"longitude":175.70614},{"latitude":-37.98002,"longitude":175.70233000000002},{"latitude":-37.97419,"longitude":175.69473000000002},{"latitude":-37.959210000000006,"longitude":175.68615000000003},{"latitude":-37.95445,"longitude":175.6817},{"latitude":-37.952670000000005,"longitude":175.67663000000002},{"latitude":-37.94467,"longitude":175.67078},{"latitude":-37.94308,"longitude":175.66471},{"latitude":-37.94478,"longitude":175.65785000000002},{"latitude":-37.94727,"longitude":175.6535},{"latitude":-37.94684,"longitude":175.64430000000002},{"latitude":-37.951710000000006,"longitude":175.63108000000003},{"latitude":-37.95136,"longitude":175.62147000000002},{"latitude":-37.94782,"longitude":175.61271000000002},{"latitude":-37.94753,"longitude":175.60372},{"latitude":-37.94615,"longitude":175.59051000000002},{"latitude":-37.94328,"longitude":175.58399000000003},{"latitude":-37.938700000000004,"longitude":175.57680000000002},{"latitude":-37.925230000000006,"longitude":175.56642000000002},{"latitude":-37.91481,"longitude":175.5491},{"latitude":-37.907000000000004,"longitude":175.52751},{"latitude":-37.89316,"longitude":175.50179000000003},{"latitude":-37.88376,"longitude":175.49178},{"latitude":-37.869600000000005,"longitude":175.47278},{"latitude":-37.869330000000005,"longitude":175.45861000000002},{"latitude":-37.86139,"longitude":175.45514000000003},{"latitude":-37.85768,"longitude":175.45355},{"latitude":-37.823640000000005,"longitude":175.43446},{"latitude":-37.817660000000004,"longitude":175.42653},{"latitude":-37.80709,"longitude":175.41293000000002},{"latitude":-37.80033,"longitude":175.40023000000002},{"latitude":-37.792660000000005,"longitude":175.3933},{"latitude":-37.78401,"longitude":175.39057000000003},{"latitude":-37.78016,"longitude":175.38678000000002},{"latitude":-37.7751,"longitude":175.37446000000003},{"latitude":-37.763630000000006,"longitude":175.38660000000002},{"latitude":-37.68667000000001,"longitude":175.33831},{"latitude":-37.680220000000006,"longitude":175.31787000000003},{"latitude":-37.67002,"longitude":175.3042},{"latitude":-37.665380000000006,"longitude":175.29921000000002},{"latitude":-37.659130000000005,"longitude":175.29525},{"latitude":-37.652210000000004,"longitude":175.28865000000002},{"latitude":-37.64934,"longitude":175.28056},{"latitude":-37.64842,"longitude":175.27395},{"latitude":-37.64569,"longitude":175.26006},{"latitude":-37.642570000000006,"longitude":175.25748000000002},{"latitude":-37.633390000000006,"longitude":175.25148000000002},{"latitude":-37.630970000000005,"longitude":175.24785000000003},{"latitude":-37.62747,"longitude":175.23652},{"latitude":-37.620850000000004,"longitude":175.21197},{"latitude":-37.621660000000006,"longitude":175.20712},{"latitude":-37.621880000000004,"longitude":175.20506},{"latitude":-37.62106,"longitude":175.20305000000002},{"latitude":-37.613020000000006,"longitude":175.19447000000002},{"latitude":-37.611180000000004,"longitude":175.19155},{"latitude":-37.611940000000004,"longitude":175.18853000000001},{"latitude":-37.61209,"longitude":175.18616},{"latitude":-37.60869,"longitude":175.18476},{"latitude":-37.603350000000006,"longitude":175.17361000000002},{"latitude":-37.600120000000004,"longitude":175.16580000000002},{"latitude":-37.59322,"longitude":175.15986},{"latitude":-37.581860000000006,"longitude":175.15907},{"latitude":-37.574180000000005,"longitude":175.15942},{"latitude":-37.565810000000006,"longitude":175.15902000000003},{"latitude":-37.560550000000006,"longitude":175.15946000000002},{"latitude":-37.551610000000004,"longitude":175.15868},{"latitude":-37.533750000000005,"longitude":175.15922},{"latitude":-37.52367,"longitude":175.16059},{"latitude":-37.516540000000006,"longitude":175.16504},{"latitude":-37.507580000000004,"longitude":175.16681000000003},{"latitude":-37.49306,"longitude":175.16180000000003},{"latitude":-37.483670000000004,"longitude":175.1603},{"latitude":-37.45234,"longitude":175.15314},{"latitude":-37.438140000000004,"longitude":175.14581},{"latitude":-37.433370000000004,"longitude":175.13984000000002},{"latitude":-37.429860000000005,"longitude":175.12906},{"latitude":-37.42446,"longitude":175.12517000000003},{"latitude":-37.41235,"longitude":175.12573},{"latitude":-37.402820000000006,"longitude":175.11977000000002},{"latitude":-37.393390000000004,"longitude":175.10936},{"latitude":-37.38481,"longitude":175.10383000000002},{"latitude":-37.375490000000006,"longitude":175.09644},{"latitude":-37.368610000000004,"longitude":175.09283000000002},{"latitude":-37.357620000000004,"longitude":175.08503000000002},{"latitude":-37.347570000000005,"longitude":175.07487},{"latitude":-37.339200000000005,"longitude":175.06317},{"latitude":-37.333020000000005,"longitude":175.06234},{"latitude":-37.32652,"longitude":175.06579000000002},{"latitude":-37.3151,"longitude":175.06629},{"latitude":-37.307550000000006,"longitude":175.06668000000002},{"latitude":-37.301500000000004,"longitude":175.06118},{"latitude":-37.292860000000005,"longitude":175.05838000000003},{"latitude":-37.28181,"longitude":175.04892},{"latitude":-37.2648,"longitude":175.04445},{"latitude":-37.260690000000004,"longitude":175.04020000000003},{"latitude":-37.254630000000006,"longitude":175.03733000000003},{"latitude":-37.25224,"longitude":175.03055},{"latitude":-37.245380000000004,"longitude":175.02630000000002},{"latitude":-37.23856,"longitude":175.0206},{"latitude":-37.23284,"longitude":175.0191},{"latitude":-37.225910000000006,"longitude":175.00971},{"latitude":-37.220110000000005,"longitude":175.00127},{"latitude":-37.213440000000006,"longitude":174.99885},{"latitude":-37.20685,"longitude":174.99466},{"latitude":-37.20232,"longitude":174.98963},{"latitude":-37.19664,"longitude":174.98612000000003},{"latitude":-37.18896,"longitude":174.9814},{"latitude":-37.177260000000004,"longitude":174.9813},{"latitude":-37.168510000000005,"longitude":174.98441000000003},{"latitude":-37.13662,"longitude":174.96536},{"latitude":-37.11903,"longitude":174.95401},{"latitude":-37.114090000000004,"longitude":174.94821000000002},{"latitude":-37.102880000000006,"longitude":174.94520000000003},{"latitude":-37.091910000000006,"longitude":174.94191},{"latitude":-37.06373,"longitude":174.92502000000002},{"latitude":-37.04093,"longitude":174.91045000000003},{"latitude":-37.019490000000005,"longitude":174.90919000000002},{"latitude":-37.00555,"longitude":174.89678},{"latitude":-36.989340000000006,"longitude":174.88632},{"latitude":-36.971560000000004,"longitude":174.87771},{"latitude":-36.95436,"longitude":174.85986000000003},{"latitude":-36.93618,"longitude":174.85235},{"latitude":-36.92186,"longitude":174.84601},{"latitude":-36.915220000000005,"longitude":174.82705},{"latitude":-36.910540000000005,"longitude":174.82147},{"latitude":-36.90511,"longitude":174.81365000000002},{"latitude":-36.896930000000005,"longitude":174.80762000000001},{"latitude":-36.88904,"longitude":174.7973},{"latitude":-36.877050000000004,"longitude":174.78169000000003},{"latitude":-36.87319,"longitude":174.77583},{"latitude":-36.86746,"longitude":174.7682},{"latitude":-36.86384,"longitude":174.76561},{"latitude":-36.85906,"longitude":174.76321000000002},{"latitude":-36.856,"longitude":174.76573000000002},{"latitude":-36.85286,"longitude":174.76548000000003}]}
I have setup my local server and tested it by running:
python server.py
... (separate terminal)...
curl http://localhost:8080/api/v1/lookup\?locations\=10,10\|20,20\|41.161758,-8.583933
The response is altitude "0" for all the requests and the running server returns: "No module named '_gdal_array'"
I can see that the "_gdal_array" module is imported by osgeo, in the "gdal_array.py" file.
Currently, I have installed GDAL=2.1.3 for the Python virtualenv and the Debian version is 2.1.2. I have tried reverting GDAL version for Python to 2.1.0, but the same thing happens.
Am I missing any dependencies?
I guess this is probably a server config issue. I have built our own dems server using this branch and it works really well for and session where I have less than 1500 long lats to send to server. above this I get a message that the json is invalid. I am thinking maybe my server truncates the code? but I do not know where to start to find out or fix it? any clues.
We are using open elevation to validate the elevations we get when we record long and lats for example for a two hour walk ie 7200 seperate long lats in one json.
We are using post request
Hi,
I'm trying to send POST request but without success. I'm getting this error: Invalid JSON
.
Request in bash works ok:
curl -X POST https://api.open-elevation.com/api/v1/lookup -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"locations":[{"latitude":49.166451,"longitude":16.576265},{"latitude":49.166443,"longitude":16.576166}]}'
{"results": [{"latitude": 49.166451, "longitude": 16.576265, "elevation": 231}, {"latitude": 49.166443, "longitude": 16.576166, "elevation": 231}]}
But PHP:
$url = 'https://api.open-elevation.com/api/v1/lookup';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Accept: application/json\r\nContent-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, '{"locations":[{"latitude":49.166451,"longitude":16.576265},{"latitude":49.166443,"longitude":16.576166}]}');
Invalid JSON
๐คช
How should I edit the source code?
Thanks for the great work @Jorl17! I've noted in your code here that you use default arguments for gdal_translate
, including the -r
flag which specifies the re-sampling algorithm. The default when not otherwise specified is "nearest", but would be more appropriately specified as one of the non-default options like cubicspline
to ensure some form of interpolation is applied. It's just a simple matter of adding an extra line to your code of:
gdal_translate -q \
-r cubicspline \
-projwin ...
I was wondering if you'd consider adding support for POST requests? URL's are limited to roughly 2,000 chars which, depending on the precision of the coordinates used, works out to roughly 100-200 points.
Another useful alternative would be to add support for point compression.
Hello
Using public API's POST requests in cross site javascript is failing because the preflight OPTIONS request is rejected with error 400.
Looking at the implementation, I think the preflight OPTIONS should not be treated as GET, because GET expects a query string and returns data, while OPTIONS should not parse input data, and should not return elevation data: it should only return the CORS headers.
Sample reproducing the error: https://jsfiddle.net/dn3nLywj/
Thanks for this great tool & service anyway
Hello,
I am having some difficulties with the Python API. When sending the following cal (as an example; I get the same for any lat, long value):
fp = requests.get('https://api.open-elevation.com/api/v1/lookup?locations=31.569,74.355', timeout=30)
...I get the following error:
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
Oddly enough, the same call succeeds when I cut and paste it into a browser winder.
Am I missing anything?
(In case you are wondering, I am hopeing to integrate the open elevation API call into the taqdir climate change data management API.
Best, and many thanks for this tool,
Julien Malard
Since open elevation is an open API I think that it would be logic to add the Access-Control-Allow-Origin
set to *
in the http header response.
docker run -t -i -v $(pwd)/data:/code/data openelevation/open-elevation /code/create-dataset.sh
--2021-03-28 17:04:33-- http://gisweb.ciat.cgiar.org/TRMM/SRTM_Resampled_250m/SRTM_NE_250m_TIF.rar
Resolving gisweb.ciat.cgiar.org (gisweb.ciat.cgiar.org)... 45.5.184.33
Connecting to gisweb.ciat.cgiar.org (gisweb.ciat.cgiar.org)|45.5.184.33|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-03-28 17:04:34 ERROR 404: Not Found.
I'm new to open elevation. I have follow the tuto "hosting your own server". I've create a folder call "data" and put my tiff file directly into that. Then i laun ./create-tiles.sh /data/ but i get error ./create-tiles.sh: ligne 6: $2 : variable sans liaison
. Can somene help please?
Thank you in advance for the help and sorry for my bad english.
It seems like the public API, as well as the data that the included scripts can download (http://gisweb.ciat.cgiar.org/TRMM/SRTM_Resampled_250m/) doesn't cover the northern part of the world (for example, two thirds of Sweden are missing).
Do you know of any data source that covers the whole world, and how it can be set up to work with the open-elevation server?
Thanks!
I keep getting the same error. The Docker installation won't work at all so I am trying without Docker. I am using a phyton virtual environment for the install.
I am getting the error on:
pip install -r requirements.txt
Failed building wheel for GDAL
Error is:
Command "/home/igor/python-environments/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-3713gqek/GDAL/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ffntlwsp/install-record.txt --single-version-externally-managed --compile --install-headers /home/igor/python-environments/env/include/site/python3.5/GDAL" failed with error code 1 in /tmp/pip-install-3713gqek/GDAL/
Is there any solution to this?
browsing the website: https://api.open-elevation.com/api/v1/lookup?locations=41.161758,-8.583933 as linked at https://open-elevation.com/ results in a server error.
<html><head><title>504 Gateway Time-out</title><style></style></head>
<body bgcolor="white" data-new-gr-c-s-check-loaded="14.1021.0" data-gr-ext-installed="">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.13.5</center>
</body
</html>
A local version (as mentioned in https://github.com/Jorl17/open-elevation/blob/master/docs/host-your-own.md ) fails to download the data:
Status: Downloaded newer image for openelevation/open-elevation:latest
--2021-07-10 15:27:45-- http://gisweb.ciat.cgiar.org/TRMM/SRTM_Resampled_250m/SRTM_NE_250m_TIF.rar
Resolving gisweb.ciat.cgiar.org (gisweb.ciat.cgiar.org)... 45.5.186.33
Connecting to gisweb.ciat.cgiar.org (gisweb.ciat.cgiar.org)|45.5.186.33|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-07-10 15:27:45 ERROR 404: Not Found.
Hi,
Is this based on SRMT1 or SRMT3 or another data set?
Cheers,
Paddy
Is there a way to use HGT-Dataset instead SRTM/GeoTIFF-Dataset?
hi,
when starting create-dataset.sh
in your docker image (openelevation/open-elevation
) the RAR archives are downloaded but they cannot be unrar'ed. the unrar
in your image seems to be corrupt, it complains with failed.
root@df71da380484:/code/data# unrar e SRTM_SE_250m_TIF.rar
unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers
Extracting from /code/data/SRTM_SE_250m_TIF.rar
Extracting SRTM_SE_250m.tif Failed
Extracting readme.txt Failed
2 Failed
this happens for all RAR files, but the RAR files ar ok, the unrar
is corrupt.
The real bad thing is, that the create-dataset
script calls create-tiles.sh
which also fails (there are not TIF files) and afterwards the RAR files are deleted!
As the download of the RAR's is time-expensive (i have to wait about 45min), i had to download them again and manually unrar them (with a ubuntu 16.04 image where the unrar works for me).
perhaps you should use the set -eu
in your create-dataset.sh
and in your downloader too.
Hi,
I cannot get more than 1 answer per 20-25secondes. Is there any trouble from your side ?
Thank you in advance for your answer,
Good evening: When making requests to the server (I only use the post method), it returns a 500 error.
I wanted to know if it really is a 500 error, or is masking some denial of service to my IP.
Thank you very much and greetings
Hi,
I am trying to get elevation for a bunch of points, but i keep getting invalid json error or sometime "Locations is required in the body".
Could anyone help me witht that?
here is my code.
` function routeToLineString(route){
var lineCoordinates = [],
cordinate = {},
i,
latLng;
for (i = 0; i < route.coordinates.length; i++) {
latLng = L.latLng(route.coordinates[i]);
cordinate["latitude"] = latLng.lat;
cordinate["longitude"] = latLng.lng;
lineCoordinates.push(cordinate);
}
var locationJson = {
"Locations": lineCoordinates
};
getElevation(JSON.stringify(locationJson));
}
function getElevation(locationData){
$.ajax({
headers: {
"Accept" : "application/json",
"Content-Type" : "application/json"
},
type: 'POST',
url: 'https://api.open-elevation.com/api/v1/lookup',
data: locationData,
success: function(data){
console.log(data);
}
});
}
`
Hi, i'm trying to use this API for the first time. I think I manage to solve ssl problem by using urllib
however the example given in https://github.com/Jorl17/open-elevation/blob/master/docs/api.md returns error 404 :
"Sorry, the requested URL 'http://api.open-elevation.com/api/v1/lookup/?locations\\=10,10\\|20,20\\|41.161758,-8.583933' caused an error:
Not found: '/api/v1/lookup/'"
Is the API currently not working or am I missing something in how to use it ?
Thanks
I'm receiving a 500 error when testing the new POST request functionality.
You can replicate the issue with the following curl:
curl -X POST -k -i 'https://api.open-elevation.com/api/v1/lookup' --data '{"locations":[{"latitude":48.877213,"longitude":2.383938},{"latitude":48.877240,"longitude":2.383898}]}'
I was hoping this was a mistake with my json formatting, but wasn't able to identify an issue.
Hi i created my own instance according to your guide on a virtual environment(ubuntu 18) but when i request no matter type of it(post,get i tried with curl as well) it gives lat long values and for elevation it says: no such coordinate i just could't figure out what i m missing i install with and without docker but same thing
I followed the manual and seemingly successfully got a local instance running (I used the docker):
Reading config file ...
Re-using existing summary JSON
Building spatial index ...
Using HTTP
Bottle v0.12.19 server starting up (using GunicornServer(workers=4))...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.
However, I'm not able to get any use of it. I send the following request:
sudo curl -X POST https://api.localhost:80/api/v1/lookup -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"locations":
[
{
"latitude":37.613894,
"longitude":-122.089683
}
]
First the request hangs for several secconds and then I see that the local instance doesn't like it and I see the following events:
[2021-12-12 04:13:26 +0000] [7] [CRITICAL] WORKER TIMEOUT (pid:11)
[2021-12-12 04:13:26 +0000] [11] [INFO] Worker exiting (pid: 11)
[2021-12-12 04:13:26 +0000] [14] [INFO] Booting worker with pid: 14
Additionally, I get the following response in return to the curl request:
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.localhost:80
What could be wrong and how can I debug it?
Hi, could you please mention the used resultion in the documentation (and or your website?)
Is it 250 m?
First off, I really like your project.
In order to not ruin it for everyone, I would like to ask how many requests I can make. On a, doing what everybody does basis, I would limit it to one per second. Is that fine with you?
The next question is how many locations I can put in the locations parameter. Or more specifically: What is the max client header buffer, if that is the limiting factor? I don't want to try around until I get a 400 or 414...
The background is, that I want to get elevation data for a bunch of coordinates (about 500 to 2000) every other week (approximately). Or is this something for what I should already set up my own server?
I read on Hacker News today that AWS published a terrain dataset: https://aws.amazon.com/de/public-datasets/terrain/
The dataset is supplied by Mapzen: https://mapzen.com/documentation/terrain-tiles/formats/
I was wondering if this data could be used with your service. This could be interesting, because the resolution has a greater resolution than the SRTM data.
I have a pandas dataframe with 'latitude' and 'longitude' columns in it. I'd like to convert this into an appropriate JSON payload for the POST API using the Python requests library. Try as I might, I keep getting an "invalid JSON" error message.
Does anyone have example code for doing this?
Thank you.
Why elevation in answer on query with sea coordinates always is 0?
I am trying to run the docker image as specified in the documentation. The docker create-dataset.sh script works fine and downloads the tif files. It runs into issues when it tries to run the create-tiles.sh script. I get the error below.
ERROR 4: SRTM_NE_250m.tif: No such file or directory
gdalinfo failed - unable to open 'SRTM_NE_250m.tif'.
ERROR 4: SRTM_NE_250m.tif: No such file or directory
gdalinfo failed - unable to open 'SRTM_NE_250m.tif'.
../create-tiles.sh: line 13: ul[0]: unbound variable
I am almost certain this issue is because the download and use of the unar
command results in three folders that contain the .tif files.
The files have a path like this. SRTM_NE_250m_TIF/SRTM_NE_250m.tif
But the script expects a path like this ./SRTM_NE_250m.tif
Which results in the unbound variable error seen above.
On Unix based systems, I believe the following code would fix the issue.
# Move tif files out of their folders
mv SRTM_NE_250m_TIF/SRTM_NE_250m.tif . && \
mv SRTM_SE_250m_TIF/SRTM_SE_250m.tif . && \
mv SRTM_W_250m_TIF/SRTM_W_250m.tif .
# Delete the folders that used to contain them
rm -r SRTM_NE_250m_TIF SRTM_SE_250m_TIF SRTM_W_250m_TIF
I'm running Ubuntu 20.04
Docker version 20.10.7, build 20.10.7-0ubuntu1~20.04.2
To reproduce this issue run the following commands (Exactly as specified in the documentation)
mkdir data # Create the target folder for the dataset
docker run -t -i -v $(pwd)/data:/code/data openelevation/open-elevation /code/create-dataset.sh
I'm trying to follow this example (with except with s=1000
to get high-accuracy data), and get the following elevation profile:
However, using Google Earth Pro, I get a much finer elevation profile (the accuracy of the start and end points appear OK):
Do we know why that is? Does Google use a different dataset, or does it essentially apply some interpolation to the results I get with the open-elevation
API? The location is Greece in case that matters.
I'm also unable to set s=2000
or higher for some reason, so I can't increase the resolution more apparently:
Traceback (most recent call last):
File "/Users/username/Desktop/Radio Astronomy/linkCoverage/example_elevation.py", line 64, in <module>
fp=urllib.request.urlopen(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
Running from docker or locally, server timeouts requests.
Bottle v0.12.13 server starting up (using GunicornServer(workers=2))...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.[2019-09-07 20:38:18 +0000] [6] [INFO] Starting gunicorn 19.7.1
[2019-09-07 20:38:18 +0000] [6] [INFO] Listening at: http://0.0.0.0:8080 (6)
[2019-09-07 20:38:18 +0000] [6] [INFO] Using worker: sync
[2019-09-07 20:38:18 +0000] [13] [INFO] Booting worker with pid: 13
[2019-09-07 20:38:18 +0000] [14] [INFO] Booting worker with pid: 14
[2019-09-07 20:38:55 +0000] [6] [CRITICAL] WORKER TIMEOUT (pid:13)
[2019-09-07 20:38:56 +0000] [15] [INFO] Booting worker with pid: 15
Trying to POST to http://localhost:8080/api/v1/lookup
{"locations":[{"latitude":42.686966666667,"longitude":24.7498},{"latitude":42.684416666667,"longitude":24.75005},{"latitude":42.684966666667,"longitude":24.75125},{"latitude":42.684966666667,"longitude":24.752533333333},{"latitude":42.68585,"longitude":24.755416666667},{"latitude":42.68745,"longitude":24.764133333333},{"latitude":42.691733333333,"longitude":24.769433333333},{"latitude":42.690866666667,"longitude":24.771133333333},{"latitude":42.693033333333,"longitude":24.774866666667},{"latitude":42.69195,"longitude":24.784183333333},{"latitude":42.689816666667,"longitude":24.790016666667},{"latitude":42.6898,"longitude":24.7896},{"latitude":42.689583333333,"longitude":24.78885},{"latitude":42.686716666667,"longitude":24.794266666667},{"latitude":42.6829,"longitude":24.7999},{"latitude":42.67855,"longitude":24.8072},{"latitude":42.6777,"longitude":24.815166666667},{"latitude":42.678133333333,"longitude":24.822633333333},{"latitude":42.676766666667,"longitude":24.83055},{"latitude":42.67425,"longitude":24.83845},{"latitude":42.675,"longitude":24.8418},{"latitude":42.671533333333,"longitude":24.846616666667},{"latitude":42.666566666667,"longitude":24.85245},{"latitude":42.66165,"longitude":24.85915},{"latitude":42.657433333333,"longitude":24.864616666667},{"latitude":42.658383333333,"longitude":24.865516666667},{"latitude":42.659033333333,"longitude":24.868033333333},{"latitude":42.658933333333,"longitude":24.8701},{"latitude":42.657133333333,"longitude":24.875266666667},{"latitude":42.658166666667,"longitude":24.875383333333},{"latitude":42.657983333333,"longitude":24.881633333333},{"latitude":42.658416666667,"longitude":24.8879},{"latitude":42.660366666667,"longitude":24.89485},{"latitude":42.662566666667,"longitude":24.901516666667},{"latitude":42.664133333333,"longitude":24.905333333333},{"latitude":42.66655,"longitude":24.9115},{"latitude":42.6683,"longitude":24.912433333333},{"latitude":42.669533333333,"longitude":24.913683333333},{"latitude":42.670516666667,"longitude":24.920966666667},{"latitude":42.672166666667,"longitude":24.926316666667},{"latitude":42.672616666667,"longitude":24.928183333333},{"latitude":42.675116666667,"longitude":24.93165},{"latitude":42.6763,"longitude":24.939866666667},{"latitude":42.67625,"longitude":24.947716666667},{"latitude":42.6805,"longitude":24.9541},{"latitude":42.68205,"longitude":24.955483333333},{"latitude":42.68205,"longitude":24.961416666667},{"latitude":42.681583333333,"longitude":24.97005},{"latitude":42.681166666667,"longitude":24.97935},{"latitude":42.682633333333,"longitude":24.986316666667},{"latitude":42.68275,"longitude":24.995216666667},{"latitude":42.682533333333,"longitude":25.00385},{"latitude":42.6833,"longitude":25.006033333333},{"latitude":42.682066666667,"longitude":25.014},{"latitude":42.680866666667,"longitude":25.019316666667},{"latitude":42.68005,"longitude":25.025533333333},{"latitude":42.67885,"longitude":25.031833333333},{"latitude":42.677916666667,"longitude":25.0377},{"latitude":42.6792,"longitude":25.0453},{"latitude":42.678866666667,"longitude":25.051966666667},{"latitude":42.677583333333,"longitude":25.0585},{"latitude":42.676583333333,"longitude":25.065283333333},{"latitude":42.674683333333,"longitude":25.07025},{"latitude":42.67495,"longitude":25.073316666667},{"latitude":42.676016666667,"longitude":25.074183333333},{"latitude":42.678766666667,"longitude":25.072766666667},{"latitude":42.680883333333,"longitude":25.0717},{"latitude":42.6833,"longitude":25.07025},{"latitude":42.685933333333,"longitude":25.071033333333},{"latitude":42.68485,"longitude":25.076666666667},{"latitude":42.68455,"longitude":25.083916666667},{"latitude":42.685216666667,"longitude":25.091},{"latitude":42.6852,"longitude":25.096666666667},{"latitude":42.6836,"longitude":25.1035},{"latitude":42.68185,"longitude":25.109333333333},{"latitude":42.682733333333,"longitude":25.113766666667},{"latitude":42.684916666667,"longitude":25.113216666667},{"latitude":42.685933333333,"longitude":25.112666666667},{"latitude":42.686783333333,"longitude":25.114083333333},{"latitude":42.687883333333,"longitude":25.120533333333},{"latitude":42.688683333333,"longitude":25.128916666667},{"latitude":42.689716666667,"longitude":25.1376},{"latitude":42.689933333333,"longitude":25.146666666667},{"latitude":42.689383333333,"longitude":25.155733333333},{"latitude":42.68965,"longitude":25.162983333333},{"latitude":42.689116666667,"longitude":25.16925},{"latitude":42.68795,"longitude":25.176733333333},{"latitude":42.688816666667,"longitude":25.185433333333},{"latitude":42.689266666667,"longitude":25.19525},{"latitude":42.688733333333,"longitude":25.2056},{"latitude":42.6898,"longitude":25.216116666667},{"latitude":42.690516666667,"longitude":25.22495},{"latitude":42.691466666667,"longitude":25.23305},{"latitude":42.693416666667,"longitude":25.239833333333},{"latitude":42.69335,"longitude":25.245466666667},{"latitude":42.691533333333,"longitude":25.247766666667},{"latitude":42.691283333333,"longitude":25.247616666667},{"latitude":42.689333333333,"longitude":25.251483333333},{"latitude":42.689066666667,"longitude":25.258333333333},{"latitude":42.689616666667,"longitude":25.267666666667},{"latitude":42.691183333333,"longitude":25.2752},{"latitude":42.691916666667,"longitude":25.281183333333},{"latitude":42.6933,"longitude":25.287633333333},{"latitude":42.692166666667,"longitude":25.289416666667},{"latitude":42.688283333333,"longitude":25.2831},{"latitude":42.683266666667,"longitude":25.2766},{"latitude":42.676766666667,"longitude":25.271433333333},{"latitude":42.669366666667,"longitude":25.269},{"latitude":42.661366666667,"longitude":25.265166666667},{"latitude":42.653566666667,"longitude":25.260633333333},{"latitude":42.646916666667,"longitude":25.2553},{"latitude":42.64085,"longitude":25.25005},{"latitude":42.636333333333,"longitude":25.24445},{"latitude":42.63245,"longitude":25.2424},{"latitude":42.626933333333,"longitude":25.23675},{"latitude":42.620533333333,"longitude":25.232166666667},{"latitude":42.614366666667,"longitude":25.22745},{"latitude":42.608416666667,"longitude":25.22425},{"latitude":42.602733333333,"longitude":25.218833333333},{"latitude":42.5968,"longitude":25.213216666667},{"latitude":42.592383333333,"longitude":25.209133333333},{"latitude":42.5916,"longitude":25.205633333333},{"latitude":42.59075,"longitude":25.203266666667},{"latitude":42.5889,"longitude":25.201333333333},{"latitude":42.588333333333,"longitude":25.199416666667},{"latitude":42.588383333333,"longitude":25.1958},{"latitude":42.58825,"longitude":25.194016666667},{"latitude":42.589683333333,"longitude":25.192},{"latitude":42.5866,"longitude":25.1888},{"latitude":42.583633333333,"longitude":25.1878},{"latitude":42.57935,"longitude":25.178916666667},{"latitude":42.5771,"longitude":25.16915},{"latitude":42.576183333333,"longitude":25.16495},{"latitude":42.57175,"longitude":25.163566666667},{"latitude":42.565,"longitude":25.163033333333},{"latitude":42.558066666667,"longitude":25.161616666667},{"latitude":42.556,"longitude":25.154433333333},{"latitude":42.558916666667,"longitude":25.1456},{"latitude":42.560283333333,"longitude":25.136633333333},{"latitude":42.5639,"longitude":25.12775},{"latitude":42.5684,"longitude":25.120183333333},{"latitude":42.571966666667,"longitude":25.114466666667},{"latitude":42.573516666667,"longitude":25.11335},{"latitude":42.57395,"longitude":25.1114},{"latitude":42.57435,"longitude":25.108433333333},{"latitude":42.575383333333,"longitude":25.1061},{"latitude":42.5755,"longitude":25.1053},{"latitude":42.572416666667,"longitude":25.09785},{"latitude":42.571333333333,"longitude":25.09255},{"latitude":42.570233333333,"longitude":25.090566666667},{"latitude":42.5687,"longitude":25.089166666667},{"latitude":42.56665,"longitude":25.086466666667},{"latitude":42.566216666667,"longitude":25.082566666667},{"latitude":42.56135,"longitude":25.07835},{"latitude":42.556333333333,"longitude":25.0705},{"latitude":42.552166666667,"longitude":25.062716666667},{"latitude":42.549933333333,"longitude":25.05405},{"latitude":42.5492,"longitude":25.04415},{"latitude":42.54835,"longitude":25.034316666667},{"latitude":42.548966666667,"longitude":25.023716666667},{"latitude":42.550766666667,"longitude":25.013083333333},{"latitude":42.551866666667,"longitude":25.0061},{"latitude":42.553433333333,"longitude":24.995},{"latitude":42.552466666667,"longitude":24.988133333333},{"latitude":42.551283333333,"longitude":24.986183333333},{"latitude":42.550416666667,"longitude":24.984583333333},{"latitude":42.548233333333,"longitude":24.984683333333},{"latitude":42.546866666667,"longitude":24.981516666667},{"latitude":42.539416666667,"longitude":24.97685},{"latitude":42.530916666667,"longitude":24.974183333333},{"latitude":42.525083333333,"longitude":24.970366666667},{"latitude":42.521,"longitude":24.965616666667},{"latitude":42.515183333333,"longitude":24.962233333333},{"latitude":42.508383333333,"longitude":24.960216666667},{"latitude":42.501516666667,"longitude":24.954783333333},{"latitude":42.494983333333,"longitude":24.9486},{"latitude":42.488,"longitude":24.941466666667},{"latitude":42.480666666667,"longitude":24.93525},{"latitude":42.4732,"longitude":24.927666666667},{"latitude":42.466733333333,"longitude":24.919833333333},{"latitude":42.4603,"longitude":24.911266666667},{"latitude":42.456816666667,"longitude":24.907716666667},{"latitude":42.452816666667,"longitude":24.905583333333},{"latitude":42.446733333333,"longitude":24.897733333333},{"latitude":42.44165,"longitude":24.890216666667},{"latitude":42.435616666667,"longitude":24.8838},{"latitude":42.4319,"longitude":24.880033333333},{"latitude":42.4311,"longitude":24.8783},{"latitude":42.431983333333,"longitude":24.872933333333},{"latitude":42.434916666667,"longitude":24.866783333333},{"latitude":42.43725,"longitude":24.863683333333},{"latitude":42.4426,"longitude":24.857266666667},{"latitude":42.4469,"longitude":24.854266666667},{"latitude":42.452216666667,"longitude":24.8488},{"latitude":42.458016666667,"longitude":24.843083333333},{"latitude":42.45845,"longitude":24.84075},{"latitude":42.461216666667,"longitude":24.837666666667},{"latitude":42.466666666667,"longitude":24.83},{"latitude":42.471683333333,"longitude":24.825133333333},{"latitude":42.477066666667,"longitude":24.820866666667},{"latitude":42.482283333333,"longitude":24.8186},{"latitude":42.485983333333,"longitude":24.818383333333},{"latitude":42.491366666667,"longitude":24.81535},{"latitude":42.489416666667,"longitude":24.80875},{"latitude":42.48685,"longitude":24.80205},{"latitude":42.48625,"longitude":24.798},{"latitude":42.4844,"longitude":24.794933333333},{"latitude":42.482533333333,"longitude":24.793633333333},{"latitude":42.483983333333,"longitude":24.793666666667},{"latitude":42.484083333333,"longitude":24.79105},{"latitude":42.4841,"longitude":24.790716666667},{"latitude":42.48515,"longitude":24.78945},{"latitude":42.4848,"longitude":24.789783333333},{"latitude":42.486483333333,"longitude":24.788516666667},{"latitude":42.48845,"longitude":24.7893},{"latitude":42.48955,"longitude":24.788616666667},{"latitude":42.4895,"longitude":24.787816666667},{"latitude":42.48855,"longitude":24.785233333333},{"latitude":42.488583333333,"longitude":24.7841},{"latitude":42.487716666667,"longitude":24.78335},{"latitude":42.487316666667,"longitude":24.783283333333},{"latitude":42.489,"longitude":24.780316666667},{"latitude":42.493833333333,"longitude":24.778366666667},{"latitude":42.499633333333,"longitude":24.776116666667},{"latitude":42.504666666667,"longitude":24.775866666667},{"latitude":42.510516666667,"longitude":24.775983333333},{"latitude":42.5172,"longitude":24.77575},{"latitude":42.519516666667,"longitude":24.774366666667},{"latitude":42.52115,"longitude":24.77135},{"latitude":42.524016666667,"longitude":24.769566666667},{"latitude":42.52535,"longitude":24.767166666667},{"latitude":42.529116666667,"longitude":24.7699},{"latitude":42.531516666667,"longitude":24.769516666667},{"latitude":42.532483333333,"longitude":24.769083333333},{"latitude":42.534066666667,"longitude":24.7695},{"latitude":42.534583333333,"longitude":24.770066666667},{"latitude":42.53435,"longitude":24.768883333333},{"latitude":42.534633333333,"longitude":24.766066666667},{"latitude":42.539433333333,"longitude":24.764616666667},{"latitude":42.539833333333,"longitude":24.7638},{"latitude":42.5453,"longitude":24.760583333333},{"latitude":42.5479,"longitude":24.758333333333},{"latitude":42.5501,"longitude":24.754433333333},{"latitude":42.55665,"longitude":24.751233333333},{"latitude":42.562933333333,"longitude":24.747366666667},{"latitude":42.569816666667,"longitude":24.745816666667},{"latitude":42.576133333333,"longitude":24.74495},{"latitude":42.583366666667,"longitude":24.743833333333},{"latitude":42.590766666667,"longitude":24.74305},{"latitude":42.5985,"longitude":24.743},{"latitude":42.605833333333,"longitude":24.742916666667},{"latitude":42.612483333333,"longitude":24.742916666667},{"latitude":42.61905,"longitude":24.743233333333},{"latitude":42.620233333333,"longitude":24.742716666667},{"latitude":42.622416666667,"longitude":24.743},{"latitude":42.6223,"longitude":24.742216666667},{"latitude":42.62435,"longitude":24.740133333333},{"latitude":42.630466666667,"longitude":24.74065},{"latitude":42.637083333333,"longitude":24.74125},{"latitude":42.642933333333,"longitude":24.742033333333},{"latitude":42.645333333333,"longitude":24.739633333333},{"latitude":42.645833333333,"longitude":24.738216666667},{"latitude":42.642366666667,"longitude":24.739783333333},{"latitude":42.640116666667,"longitude":24.741516666667},{"latitude":42.6441,"longitude":24.748083333333},{"latitude":42.647433333333,"longitude":24.751583333333},{"latitude":42.64805,"longitude":24.750866666667},{"latitude":42.648833333333,"longitude":24.75275},{"latitude":42.648266666667,"longitude":24.7535},{"latitude":42.65055,"longitude":24.7533},{"latitude":42.6523,"longitude":24.752633333333},{"latitude":42.654966666667,"longitude":24.751233333333},{"latitude":42.656566666667,"longitude":24.751816666667},{"latitude":42.65895,"longitude":24.74995},{"latitude":42.661966666667,"longitude":24.748883333333},{"latitude":42.663833333333,"longitude":24.747283333333},{"latitude":42.666016666667,"longitude":24.746016666667},{"latitude":42.668533333333,"longitude":24.743266666667},{"latitude":42.672816666667,"longitude":24.739833333333},{"latitude":42.679233333333,"longitude":24.734433333333},{"latitude":42.68475,"longitude":24.729516666667},{"latitude":42.69055,"longitude":24.723983333333},{"latitude":42.696916666667,"longitude":24.716833333333},{"latitude":42.7019,"longitude":24.710716666667},{"latitude":42.70425,"longitude":24.709116666667},{"latitude":42.70975,"longitude":24.70375},{"latitude":42.71195,"longitude":24.700716666667},{"latitude":42.716466666667,"longitude":24.6925},{"latitude":42.719533333333,"longitude":24.684466666667},{"latitude":42.723466666667,"longitude":24.676},{"latitude":42.72725,"longitude":24.671916666667},{"latitude":42.72925,"longitude":24.6682},{"latitude":42.733716666667,"longitude":24.658883333333},{"latitude":42.736033333333,"longitude":24.648783333333},{"latitude":42.7372,"longitude":24.642016666667},{"latitude":42.7376,"longitude":24.634066666667},{"latitude":42.739433333333,"longitude":24.624333333333},{"latitude":42.740716666667,"longitude":24.61745},{"latitude":42.741983333333,"longitude":24.612833333333},{"latitude":42.740616666667,"longitude":24.61315},{"latitude":42.74045,"longitude":24.608666666667},{"latitude":42.737766666667,"longitude":24.60005},{"latitude":42.735783333333,"longitude":24.599016666667},{"latitude":42.735766666667,"longitude":24.6056},{"latitude":42.735683333333,"longitude":24.611416666667},{"latitude":42.737016666667,"longitude":24.615816666667},{"latitude":42.737,"longitude":24.6222},{"latitude":42.738716666667,"longitude":24.622416666667},{"latitude":42.741783333333,"longitude":24.622466666667},{"latitude":42.744083333333,"longitude":24.621516666667},{"latitude":42.742416666667,"longitude":24.627766666667},{"latitude":42.740333333333,"longitude":24.6358},{"latitude":42.738816666667,"longitude":24.64375},{"latitude":42.736983333333,"longitude":24.650283333333},{"latitude":42.734,"longitude":24.65685},{"latitude":42.730783333333,"longitude":24.665183333333},{"latitude":42.727816666667,"longitude":24.670783333333},{"latitude":42.725083333333,"longitude":24.674233333333},{"latitude":42.722733333333,"longitude":24.679366666667},{"latitude":42.7207,"longitude":24.68315},{"latitude":42.717716666667,"longitude":24.68625},{"latitude":42.715616666667,"longitude":24.69175},{"latitude":42.7158,"longitude":24.695616666667},{"latitude":42.7169,"longitude":24.70245},{"latitude":42.715983333333,"longitude":24.708066666667},{"latitude":42.713583333333,"longitude":24.7145},{"latitude":42.711383333333,"longitude":24.720716666667},{"latitude":42.7096,"longitude":24.725633333333},{"latitude":42.706783333333,"longitude":24.7302},{"latitude":42.704716666667,"longitude":24.734783333333},{"latitude":42.702733333333,"longitude":24.738716666667},{"latitude":42.702866666667,"longitude":24.740916666667},{"latitude":42.702016666667,"longitude":24.743383333333},{"latitude":42.703,"longitude":24.745516666667},{"latitude":42.70085,"longitude":24.751316666667},{"latitude":42.698183333333,"longitude":24.757833333333},{"latitude":42.695966666667,"longitude":24.763966666667},{"latitude":42.693133333333,"longitude":24.769383333333},{"latitude":42.690166666667,"longitude":24.775866666667},{"latitude":42.687333333333,"longitude":24.78215},{"latitude":42.684333333333,"longitude":24.787116666667},{"latitude":42.681116666667,"longitude":24.7913},{"latitude":42.682633333333,"longitude":24.7922},{"latitude":42.679433333333,"longitude":24.79685},{"latitude":42.675766666667,"longitude":24.801516666667},{"latitude":42.6734,"longitude":24.806366666667},{"latitude":42.670933333333,"longitude":24.810566666667},{"latitude":42.66815,"longitude":24.805683333333},{"latitude":42.666183333333,"longitude":24.798366666667},{"latitude":42.665666666667,"longitude":24.789583333333},{"latitude":42.664766666667,"longitude":24.7811},{"latitude":42.663733333333,"longitude":24.7728},{"latitude":42.662683333333,"longitude":24.7657},{"latitude":42.65935,"longitude":24.760233333333},{"latitude":42.655866666667,"longitude":24.754433333333},{"latitude":42.652116666667,"longitude":24.749216666667},{"latitude":42.655033333333,"longitude":24.7441},{"latitude":42.656133333333,"longitude":24.747266666667},{"latitude":42.658316666667,"longitude":24.7469},{"latitude":42.660133333333,"longitude":24.745383333333},{"latitude":42.66165,"longitude":24.747816666667},{"latitude":42.664816666667,"longitude":24.746033333333},{"latitude":42.662033333333,"longitude":24.747016666667},{"latitude":42.664133333333,"longitude":24.7442},{"latitude":42.662066666667,"longitude":24.74555},{"latitude":42.665316666667,"longitude":24.747466666667},{"latitude":42.663933333333,"longitude":24.747833333333}]}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.