Class: ESpider::Baidu::Map::API::Place

Inherits:
Object
  • Object
show all
Defined in:
lib/espider/api/baidu/map/place.rb

Constant Summary collapse

FORMAT =
{:JSON=>'json',:XML=>'xml'}
INFO =
{:ALL=>2,:BASIC=>1}
FIRST_PAGE_NUM =
-1
BaseUri =
"http://api.map.baidu.com/place/v2/search?"

Instance Method Summary collapse

Constructor Details

#initialize(key, page_size = 10, info_type = INFO[:ALL], format = FORMAT[:JSON]) ⇒ Place

Returns a new instance of Place.



13
14
15
16
17
18
# File 'lib/espider/api/baidu/map/place.rb', line 13

def initialize(key,page_size=10,info_type=INFO[:ALL],format=FORMAT[:JSON])
	@key = key
	@page_size = page_size
	@info_type = info_type
	@format = format
end

Instance Method Details

#get_pageObject



38
39
40
41
# File 'lib/espider/api/baidu/map/place.rb', line 38

def get_page
	@page = HTTParty.get File.join(BaseUri + URI.escape(@params.collect{|k,v| "#{k}=#{v}"}.join('&')))
	@page.body
end

#next_pageObject



34
35
36
37
# File 'lib/espider/api/baidu/map/place.rb', line 34

def next_page
	@params[:page_num] = @params[:page_num] + 1
	get_page
end

#page_codeObject



42
43
44
# File 'lib/espider/api/baidu/map/place.rb', line 42

def page_code
	@page.code
end

#search_by_city(query, region) ⇒ Object

城市内检索api.map.baidu.com/place/v2/search?ak=您的密钥&output=json&query=酒店&page_size=10&page_num=5&scope=2&region=北京



21
22
23
# File 'lib/espider/api/baidu/map/place.rb', line 21

def search_by_city(query,region)
	@params = {:ak=>@key,:output=>@format,:query=>query,:page_size=>@page_size,:page_num=>FIRST_PAGE_NUM,:scope=>@info_type,:region=>region}
end

#search_by_rect(query, bounds) ⇒ Object

矩形区域搜索api.map.baidu.com/place/v2/search?ak=您的密钥&output=json&query=酒店&page_size=10&page_num=5&scope=2&bounds=39.915,116.404,39.975,116.414



26
27
28
# File 'lib/espider/api/baidu/map/place.rb', line 26

def search_by_rect(query,bounds)
	@params = {:ak=>@key,:output=>@format,:query=>query,:page_size=>@page_size,:page_num=>FIRST_PAGE_NUM,:scope=>@info_type,:bounds=>bounds}
end

#search_by_round(query, location, radius) ⇒ Object

圆形区域检索api.map.baidu.com/place/v2/search?ak=您的密钥&output=json&query=酒店&page_size=10&page_num=5&scope=2&location=39.915,116.404&radius=2000



31
32
33
# File 'lib/espider/api/baidu/map/place.rb', line 31

def search_by_round(query,location,radius)
	@params = {:ak=>@key,:output=>@format,:query=>query,:page_size=>@page_size,:page_num=>FIRST_PAGE_NUM,:scope=>@info_type,:location=>location,:radius=>radius}
end

#totalObject



45
46
47
48
# File 'lib/espider/api/baidu/map/place.rb', line 45

def total
	parsed_json = JSON.parse @page.body
	parsed_json['total']
end