Google Map의 레스토랑 리뷰 평가가 좋은 지역을 시각화
개요
Google Map의 리뷰 점수가 높은 레스토랑이 모이는 곳은 어디인가? 라고 의문에 생각해, 히트 맵으로 해 보았습니다
리뷰 등급을 받습니다.
Place Search API 을 사용합니다. 이 래퍼 을 사용하셨습니다.
Place Search API 을 사용합니다. 이 래퍼 을 사용하셨습니다.
radius
를 500으로 합니다 fetch_rating.rb
@client = GooglePlaces::Client.new(API_KEY)
col_num.times do |c|
row_num.times do |r|
lng = south_west[:lng] + c * diff
lat = south_west[:lat] + r * diff
result = @client.spots(lat, lng, language: :ja, types: :restaurant, radius: 500)
# 平均出したりする処理...
end
end
요금에 대해
히트맵 그리기
HeatmapLayer
weight
를 포함시키면 가중치를 할 수 있다(weight: 3이면 내부적으로 3개의 점이 플롯되는 취급이 된다) weight = Math.pow(weight, 3)
빗질해서 비선형으로 합니다 결과는 이런 느낌입니다.
니시 아자 부, 메구로 근처, 그리고 왠지 서쪽이 강하네요.
heatmap.js
fetch('summary.json')
.then(response => response.json())
.then(json => {
const heatmapData = json.map(d => {
const location = new google.maps.LatLng(d['location']['lat'], d['location']['lng'])
const weight = Math.max(0, Math.pow(d['avg'] - 3, 3))
return {location, weight}
})
const map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(35.672196, 139.729521),
zoom: 12.3,
maxZoom: 12.6,
minZoom: 12,
disableDefaultUI: true
})
const heatmap = new google.maps.visualization.HeatmapLayer({
data: heatmapData,
radius: 40,
opacity: 0.5,
gradient: ['white', '#ffff99', '#fff000', '#ff0000'],
})
heatmap.setMap(map)
})
여기 에서 움직이는 것을 볼 수 있습니다.
비밀이지만 여기 에서 리뷰가 낮은 지역이 붉어지는 버전도 볼 수 있습니다.
Reference
이 문제에 관하여(Google Map의 레스토랑 리뷰 평가가 좋은 지역을 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/inamori/items/983d0fa554ffa211181b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)