{"id":13508251,"url":"https://github.com/CandyGumdrop/proj","last_synced_at":"2025-03-30T10:30:45.885Z","repository":{"id":55039587,"uuid":"64747901","full_name":"CandyGumdrop/proj","owner":"CandyGumdrop","description":"Elixir coordinate conversion library using OSGeo's PROJ.4","archived":false,"fork":false,"pushed_at":"2021-01-13T17:53:22.000Z","size":28,"stargazers_count":8,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2024-11-01T07:33:30.464Z","etag":null,"topics":["c","coordinate-systems","distance-calculation","elixir","geospatial","osgeo-proj"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CandyGumdrop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-02T10:30:36.000Z","updated_at":"2023-11-23T08:37:06.000Z","dependencies_parsed_at":"2022-08-14T09:50:37.182Z","dependency_job_id":null,"html_url":"https://github.com/CandyGumdrop/proj","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGumdrop%2Fproj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGumdrop%2Fproj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGumdrop%2Fproj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGumdrop%2Fproj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CandyGumdrop","download_url":"https://codeload.github.com/CandyGumdrop/proj/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246307582,"owners_count":20756473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","coordinate-systems","distance-calculation","elixir","geospatial","osgeo-proj"],"created_at":"2024-08-01T02:00:50.386Z","updated_at":"2025-03-30T10:30:45.593Z","avatar_url":"https://github.com/CandyGumdrop.png","language":"C","funding_links":[],"categories":["Geolocation"],"sub_categories":[],"readme":"# Proj\n\nProj is an Elixir library for converting coordinates between different\ncoordinate systems, using Erlang NIFs to the OSGeo PROJ.4 library.\n\nProj also supports geodesic functions from PROJ.4.  A geodesic is the shortest\nline around the globe which crosses through two points.  This is useful for\nsolving problems such as:\n\n- Finding the distance between two locations\n\n- Finding the bearings between two locations\n\n- Finding the resulting location after moving `x` metres forwards facing a\n  certain bearing from a given location\n\n- Plotting a set of points in a line between two locations\n\n## Installation\n\nBefore you can install Proj, you must have:\n\n- gcc\n- PROJ.4 newer than 4.9.0 (PROJ 5+ should work, but this library makes use of\n  the legacy PROJ.4 API.)\n\n### Ubuntu / Debian:\n\n    apt install libproj-dev gcc binutils libc-dev make\n\n### Red Hat / CentOS\n\n    yum install proj-devel binutils gcc glibc-devel make\n\n### macOS\n\n    brew install proj\n\nProj has currently only been tested on GNU/Linux and Mac OS X.  Windows support\nhas not yet been tested and may require some small changes to work under a\nCygwin or MinGW environment.\n\n## Example Usage\n\n```elixir\niex\u003e {:ok, bng} = Proj.from_epsg(27700) # British National Grid CRS is EPSG:27700\n{:ok, #Proj\u003c+init=epsg:27700 ...\u003e}\n\n# Convert the British National Grid Easting + Northing of Buckingham Palace into\n# a Latitude + Longitude pair\niex\u003e Proj.to_lat_lng!({529155, 179699}, bng)\n{51.50147938477216, -0.1406319210455952}\n\n# Convert the Latitude + Longitude of Buckingham Palace to its\n# British National Grid Easting + Northing\niex\u003e Proj.from_lat_lng!({51.501479, -0.140631}, bng)\n{529155.0658918166, 179698.9583449281}\n\n# Calculate the shortest distance \"as the crow flies\" in metres between\n# Buckingham Palace and the Eiffel Tower\niex\u003e Proj.Geodesic.distance({51.501476, -0.140634}, {48.8584, 2.2945})\n341549.6819692767\n\n# Calculate the resulting location after travelling 100 metres forwards from\n# Buckingham Palace, facing a bearing of 060°\niex\u003e Proj.Geodesic.travel({51.501476, -0.140634}, 60, 100)\n{51.50192539979596, -0.1393868003258145}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCandyGumdrop%2Fproj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCandyGumdrop%2Fproj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCandyGumdrop%2Fproj/lists"}