Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vityok/cl-proj

Common Lisp bindings for the Proj.4 cartographic projections library
https://github.com/vityok/cl-proj

cartographic-projection coordinate-systems geocoding proj4 proj4-library

Last synced: about 4 hours ago
JSON representation

Common Lisp bindings for the Proj.4 cartographic projections library

Awesome Lists containing this project

README

        

CL-PROJ: Lisp bindings for the Proj.4 library
=============================================

PROJ.4 is a cartographic projections library originally written by
Gerald Evenden then of the USGS. PROJ.4 has been placed under an MIT
license.

CL-PROJ provides CFFI-based Common Lisp bindings for the PROJ.4
library. It is placed under the Berkeley Software Distribution (BSD)
license meaning that you can do almost everything you want with it.

PROJ.4 homepage is: [proj4.org](http://proj4.org/)

Original CL-PROJ homepage was at the
[cl-proj.sourceforge.net](http://cl-proj.sourceforge.net/), but
current development and documentation is [at the
Bitbucket](https://bitbucket.org/vityok/cl-proj).

`cl-proj` can be installed using the
[Quicklisp](https://www.quicklisp.org/) system:

(ql:quicload :cl-proj)

Usage
=====

Library loading and linking into the Lisp image is performed
automatically when it is loaded by ASDF/QuickLisp.

Symbols are defined in the `cl-proj` package and are also available
using the `pj` package nickname.

Constants, variables and functions are extremely close to the
PROJ.4. Bindings for geodesic functions are also provided in addition
to the core Proj4 API. Reference is in the file that is
supplied in the distribution.

Primary development platform is recent Ubuntu Linux distribution with
recent versions of SBCL and ECL Common Lisps.

In addition to Proj4 library bindings this package a number of utility
functions, including:

* Parsing degrees from a string and conversion between
degree-minutes-seconds and decimal representations

* Simplification of polygons/polylines (reducing number of vertices)
using the Ramer–Douglas–Peucker algorithm

* Projecting points from a geographic space onto a screen with the
given dimensions and viewport

* Construction of circular lines with the given radius and center
(like missile ranges, etc.)

This package has been used to produce some maps in the
[collection-of-maps](https://bitbucket.org/vityok/collection-of-maps)
([Wiki](https://bitbucket.org/vityok/collection-of-maps/wiki/Home)).

Copying
=======

Copyright (c) 2012,2015,2017 Victor Anyakin
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the organization nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Victor Anyakin BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.