geomap 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+