Giter Site home page Giter Site logo

geocoder-clj's Introduction

geocoder-clj

https://img.shields.io/clojars/v/geocoder-clj.svg https://travis-ci.org/r0man/geocoder-clj.svg https://versions.deps.co/r0man/geocoder-clj/status.svg https://versions.deps.co/r0man/geocoder-clj/downloads.svg

A Clojure library for various geocoder services.

Usage

Bing

(require '[geocoder.bing :as bing])
(def geocoder (bing/geocoder {:api-key "MY-KEY"}))
(bing/geocode-address geocoder "Senefelderstraße 24, 10437 Berlin")
(bing/geocode-location geocoder {:lat 52.54258 :lng 13.42299})

Geonames

(require '[geocoder.geonames :as geonames])
(def geocoder (geonames/geocoder {:api-key "MY-KEY"}))
(geonames/geocode-address geocoder "Senefelderstraße 24, 10437 Berlin")
(geonames/geocode-location geocoder {:lat 52.54258 :lng 13.42299})

Google

(require '[geocoder.google :as google])
(def geocoder (google/geocoder {:api-key "MY-KEY"}))
(google/geocode-address geocoder "Senefelderstraße 24, 10437 Berlin")
(google/geocode-location geocoder {:lat 52.54258 :lng 13.42299})

Maxmind

(require '[geocoder.maxmind :as maxmind])
(def db (geonames/db "/usr/share/GeoIP/GeoIP.dat"))
(maxmind/geocode-ip-address db "92.229.192.11")

License

Copyright (C) 2013-2019 r0man

Distributed under the Eclipse Public License, the same as Clojure.

geocoder-clj's People

Contributors

ogrim avatar podviaznikov avatar r0man avatar stuarth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

geocoder-clj's Issues

another 1.3 issue

Hi Roman,

Recently I did a lein deps and whenever I try to require the latest version of geocoder it gives me this error:

Unable to resolve symbol: print-doc in this context
[Thrown class java.lang.RuntimeException]

From what I can tell it is coming from the inflections dependency (which is also yours I believe) trying to include something from contrib? Not sure, I don't see any reference to print-doc from your code, but requiring this library causes the error.

Any ideas? Thanks!

Here is the stacktrace (starting from trying to load your geocoder library):

0: clojure.lang.Util.runtimeException(Util.java:156)
1: clojure.lang.Compiler.resolveIn(Compiler.java:6720)
2: clojure.lang.Compiler.resolve(Compiler.java:6664)
3: clojure.lang.Compiler.analyzeSymbol(Compiler.java:6625)
4: clojure.lang.Compiler.analyze(Compiler.java:6198)
5: clojure.lang.Compiler.analyze(Compiler.java:6177)
6: clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3452)
7: clojure.lang.Compiler.analyzeSeq(Compiler.java:6411)
8: clojure.lang.Compiler.analyze(Compiler.java:6216)
9: clojure.lang.Compiler.analyze(Compiler.java:6177)
10: clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
11: clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
12: clojure.lang.Compiler.analyze(Compiler.java:6216)
13: clojure.lang.Compiler.analyze(Compiler.java:6177)
14: clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
15: clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5873)
16: clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
17: clojure.lang.Compiler.analyze(Compiler.java:6216)
18: clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
19: clojure.lang.Compiler.analyze(Compiler.java:6216)
20: clojure.lang.Compiler.analyze(Compiler.java:6177)
21: clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2597)
22: clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
23: clojure.lang.Compiler.analyze(Compiler.java:6216)
24: clojure.lang.Compiler.analyze(Compiler.java:6177)
25: clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
26: clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5873)
27: clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
28: clojure.lang.Compiler.analyze(Compiler.java:6216)
29: clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
30: clojure.lang.Compiler.analyze(Compiler.java:6216)
31: clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
32: clojure.lang.Compiler.analyze(Compiler.java:6216)
33: clojure.lang.Compiler.analyze(Compiler.java:6177)
34: clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
35: clojure.lang.Compiler$FnMethod.parse(Compiler.java:5008)
36: clojure.lang.Compiler$FnExpr.parse(Compiler.java:3629)
37: clojure.lang.Compiler.analyzeSeq(Compiler.java:6407)
38: clojure.lang.Compiler.analyze(Compiler.java:6216)
39: clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
40: clojure.lang.Compiler.analyze(Compiler.java:6216)
41: clojure.lang.Compiler.access$100(Compiler.java:37)
42: clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:492)
43: clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
44: clojure.lang.Compiler.analyze(Compiler.java:6216)
45: clojure.lang.Compiler.analyze(Compiler.java:6177)
46: clojure.lang.Compiler.eval(Compiler.java:6469)
47: clojure.lang.Compiler.load(Compiler.java:6902)
48: clojure.lang.RT.loadResourceScript(RT.java:357)
49: clojure.lang.RT.loadResourceScript(RT.java:348)
50: clojure.lang.RT.load(RT.java:427)
51: clojure.lang.RT.load(RT.java:398)
52: clojure.core$load$fn__4610.invoke(core.clj:5386)
53: clojure.core$load.doInvoke(core.clj:5385)
54: clojure.lang.RestFn.invoke(RestFn.java:408)
55: clojure.core$load_one.invoke(core.clj:5200)
56: clojure.core$load_lib.doInvoke(core.clj:5237)
57: clojure.lang.RestFn.applyTo(RestFn.java:142)
58: clojure.core$apply.invoke(core.clj:602)
59: clojure.core$load_libs.doInvoke(core.clj:5271)
60: clojure.lang.RestFn.applyTo(RestFn.java:137)
61: clojure.core$apply.invoke(core.clj:604)
62: clojure.core$use.doInvoke(core.clj:5363)
63: clojure.lang.RestFn.invoke(RestFn.java:408)
64: inflections.core$eval8424$loading__4505__auto____8425.invoke(core.clj:1)
65: inflections.core$eval8424.invoke(core.clj:1)
66: clojure.lang.Compiler.eval(Compiler.java:6465)
67: clojure.lang.Compiler.eval(Compiler.java:6455)
68: clojure.lang.Compiler.load(Compiler.java:6902)
69: clojure.lang.RT.loadResourceScript(RT.java:357)
70: clojure.lang.RT.loadResourceScript(RT.java:348)
71: clojure.lang.RT.load(RT.java:427)
72: clojure.lang.RT.load(RT.java:398)
73: clojure.core$load$fn__4610.invoke(core.clj:5386)
74: clojure.core$load.doInvoke(core.clj:5385)
75: clojure.lang.RestFn.invoke(RestFn.java:408)
76: clojure.core$load_one.invoke(core.clj:5200)
77: clojure.core$load_lib.doInvoke(core.clj:5237)
78: clojure.lang.RestFn.applyTo(RestFn.java:142)
79: clojure.core$apply.invoke(core.clj:602)
80: clojure.core$load_libs.doInvoke(core.clj:5271)
81: clojure.lang.RestFn.applyTo(RestFn.java:137)
82: clojure.core$apply.invoke(core.clj:604)
83: clojure.core$use.doInvoke(core.clj:5363)
84: clojure.lang.RestFn.invoke(RestFn.java:457)
85: geocoder.core$eval7765$loading__4505__auto____7766.invoke(core.clj:1)
86: geocoder.core$eval7765.invoke(core.clj:1)

doesn't work on 1.2

Hey, I love the library! However, apparently lein uses clojure 1.2 internally (even though my project uses 1.3). This is annoying to say the least. However, is there any way to make it backwards compatible? I asked around on #clojure and apparently this just means saying things like this:

(def ^{:dynamic true} service)

instead of this

(def ^:dynamic service)

Any thoughts on this? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.