Ruby on rails 从google_place gem获取单个地点的详细信息

Ruby on rails 从google_place gem获取单个地点的详细信息,ruby-on-rails,rubygems,google-places,Ruby On Rails,Rubygems,Google Places,我正在创建一个使用google_places gem的应用程序,我想做的是搜索所选位置附近的酒店和餐馆。Google_places gem帮了我很多忙,但它所显示的是: [# @place_id=“ChIJl6wYnDyG_UYRLHo26ttMYf0”、@appearch=“48”, @lat=54.1847303,@lng=18.432423, @视口={“东北”=>{“纬度”=>54.1833813197085, “lng”=>18.1291523802915},“西南”=>54.1833

我正在创建一个使用google_places gem的应用程序,我想做的是搜索所选位置附近的酒店和餐馆。Google_places gem帮了我很多忙,但它所显示的是:

[# @place_id=“ChIJl6wYnDyG_UYRLHo26ttMYf0”、@appearch=“48”, @lat=54.1847303,@lng=18.432423, @视口={“东北”=>{“纬度”=>54.1833813197085, “lng”=>18.1291523802915},“西南”=>54.1833813197085, “lng”=>18.12645441970849},@name=“Polando没有名字”, @图标=”https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png“

我能做些什么来正常显示名称和纬度吗?我所能做的就是:

@类型=[“餐厅”、“食品”、“兴趣点”、“场所”]

一百,, :types=>['hotel','sleep',详细信息:true)%

我在GooglePlacesGemRepository和google中找不到任何有用的东西,所以我决定写在这里


谢谢!

您提供的代码与您的标题相矛盾,因此我将尝试回答这两个问题:

在控制器中,如果有,
@spots=@client.spots(@trip.latitude,@trip.longitude,:radius=>100,:types=>['hotel','sleep',detail:true)

您应该能够在视图中遍历
@spot

<% @spots.each do |spot| %>
  <%= spot.name %>
<% end %>


当有疑问时,点击
#methods
(例如
spot.methods
),这将让您了解如何使用
spot
-或任何对象。

有一个函数getDetails(…)的Google API,它返回有关某个地方的更多信息,扩展了nearbySearch(…)函数返回的信息

var SearchPlaces = {
    GPMHotels: ['hotel']
    , GPMFoodPlaces: ['restaurant']
    , GPMShoppingPlaces: ['shopping_mall']
};

var service = new google.maps.places.PlacesService(GPMap);

function SearchGPMapServiceNearPlacesFn(service) {
    function GetHTML(place) {
        var distance = "";
        if (place.geometry && place.geometry.location) {
            var fromLatLng = new google.maps.LatLng(GPMapLocation.lat, GPMapLocation.lng);
            distance = google.maps.geometry.spherical.computeDistanceBetween(fromLatLng, place.geometry.location);
            distance = Math.ceil(distance).toLocaleString('@languaje');
        }
        var html = "*&nbsp;" + (distance ? distance + " m. " : "") + place.name + ".&nbsp;&nbsp;"
                       + place.formatted_address + ".&nbsp;&nbsp;" +
            (place.international_phone_number || "");
        return html;
    }

    function GetPlaceDetails(place_id) {
        if (!place_id) return;
        service.getDetails({
            placeId: place_id
        }, function (place, status) {
            if (status === google.maps.places.PlacesServiceStatus.OK) {
                //-->> console.log({ fn: 'GetPlaceDetails', item: place });
                $("#GPMNearSitesList").append($('<li>').html(GetHTML(place)));
            }
        });
    }

    service.nearbySearch({
        location: GPMapLocation,
        radius: GPMapOptions.searchRadiusList,
    },
    function (results, status) {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
            for (var i = 0; i < results.length; i++) {
                GetPlaceDetails(results[i].place_id);
                //-->>console.log({ fn: "SearchGPMapServiceNearPlacesFn", item: results[i] });
            }
        }
    });
}
var SearchPlaces={
GPM酒店:[“酒店”]
,GPMFoodPlaces:[“餐厅”]
,GPMShoppingPlaces:[“购物中心”]
};
var service=newgoogle.maps.places.PlacesService(GPMap);
函数SearchGPMapServiceNearPlacesFn(服务){
函数GetHTML(place){
var距离=”;
if(place.geometry&&place.geometry.location){
var fromLatLng=新的google.maps.LatLng(GPMapLocation.lat,GPMapLocation.lng);
距离=google.maps.geometry.sphereal.ComputedDistanceBeween(fromLatLng,place.geometry.location);
距离=Math.ceil(distance).toLocaleString('@languaje');
}
var html=“*”+(距离?距离+“m:”)+place.name+”
+place.u地址+”+
(place.international|u phone|u number |?);
返回html;
}
函数GetPlaceDetails(place\u id){
如果(!place_id)返回;
service.getDetails({
placeId:place\u id
},功能(地点、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
//-->>log({fn:'GetPlaceDetails',item:place});
$(“#GPMNearSitesList”).append($(“
  • ”).html(GetHTML(place)); } }); } 服务,近距离搜索({ 位置:GPMapLocation, radius:GPMapOptions.searchRadiusList, }, 功能(结果、状态){ if(status==google.maps.places.PlacesServiceStatus.OK){ 对于(var i=0;i>log({fn:“SearchGPMapServiceNearPlacesFn”,项:results[i]}); } } }); }
  • 见: