geomap 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/geomap.rb +53 -0
  2. metadata +56 -0
data/lib/geomap.rb ADDED
@@ -0,0 +1,53 @@
1
+ require 'rubygems'
2
+ require 'json'
3
+ require 'net/http'
4
+
5
+ class Place < ActiveRecord::Base
6
+
7
+ def latlng=(lat, lng)
8
+ @latitude, @longitude = lat, lng
9
+ @address = get_results [lat, lng], true
10
+ end
11
+
12
+ def address=(address)
13
+ @address = address
14
+ address = address.gsub!(/\s/, '+')
15
+ @latitude, @longitude = get_results address, false
16
+ end
17
+
18
+
19
+ def get_results args, cond
20
+
21
+ geocoder_url = "http://maps.googleapis.com/maps/api/geocode/json?"
22
+ params = ""
23
+
24
+ params = cond ? "latlng=#{args[0]},#{args[1]}" : "address=#{args[0]}"
25
+
26
+ url ="#{geocoder_url}#{params}&sensor=true"
27
+
28
+ resp = Net::HTTP.get_response(URI.parse(url))
29
+ data = resp.body
30
+
31
+ result = JSON.parse(data)
32
+
33
+ if result.has_key? 'Error'
34
+ raise "web service error"
35
+ end
36
+
37
+
38
+ if cond
39
+ result ["results"].first["address_components"].first["long_name"]
40
+ else
41
+ [result["results"].first["geometry"]["location"]["lat"], result["results"].first["geometry"]["location"]["lng"]]
42
+ end
43
+
44
+ end
45
+
46
+ end
47
+
48
+
49
+ class ActiveRecord::Base
50
+ def self.geo_mappable
51
+ has_many :places, :dependent => :destroy
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: geomap
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - choodur
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-06-02 00:00:00 +08:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description: ECC Activity
18
+ email: tudorblink@gmail.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files: []
24
+
25
+ files:
26
+ - lib/geomap.rb
27
+ has_rdoc: true
28
+ homepage: http://rubygems.org/gems/geomap
29
+ licenses: []
30
+
31
+ post_install_message:
32
+ rdoc_options: []
33
+
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: "0"
42
+ required_rubygems_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
48
+ requirements: []
49
+
50
+ rubyforge_project:
51
+ rubygems_version: 1.6.2
52
+ signing_key:
53
+ specification_version: 3
54
+ summary: Geo Map
55
+ test_files: []
56
+