当前位置: 首页 > 知识库问答 >
问题:

如何获取酒店名称与酒店图片从谷歌地图附近的地方API?

齐乐逸
2023-03-14

我已经阅读了附近地方搜索API的所有文档,并尝试了以下方法:

$: 

var amsterdam=newgoogle.maps.LatLng(,);函数initialize(){var mapProp={center:amsterdam,zoom:17,scrollwheel:false,mapTypeId:google.maps.mapTypeId.ROADMAP};

        var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);

        var myCity = new google.maps.Circle({
            center: amsterdam,
            radius: 150,
            strokeColor: "#55A82C",
            strokeOpacity: 0.8,
            strokeWeight: 2,
            fillColor: "#7cbd22",
            fillOpacity: 0.4
        });

        myCity.setMap(map);
    }
    google.maps.event.addDomListener(window, 'load', initialize);

    var map1;
    var infowindow;
    var pyrmont = {lat: <?php echo $data['lat'] ?>, lng: <?php echo $data['lng'] ?>};
    function initMap() {

        map1 = new google.maps.Map(document.getElementById('Map'), {
            center: pyrmont,
            zoom: 15
        });
        var service = new google.maps.places.PlacesService(map1);
        service.nearbySearch({
            location: pyrmont,
            radius: 800,
            type: ['lodging'],
            "photos" : [
                {
                    "height" : 426,
                    "html_attributions" : [
                        "\u003ca href=\"https://www.google.com/maps/views/profile/104066891898402903288\"\u003eRhythmboat Cruises\u003c/a\u003e"
                    ],
                    "photo_reference" : pyrmont,
                    "width" : 640
                }
            ]
        }, callback);
    }

    function callback(results, status) {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
            var hotelname = '';
            for (var i = 0; i < results.length; i++) {
                var name = results[i]['name'];
                var photo = results[i]['photos']['photo_reference'];
                if(i<6)
                {
                    hotelname += '<span class="">'+name+'</span>';
                    hotelname += '<img src="'+photo+'"/>';
                }
            }
            $("#hotel").html(hotelname);
        }
    }

    google.maps.event.addDomListener(window, 'load', initMap);
</script>

在这个例子中,我找到了酒店名称,但没有找到酒店图像。我得到一个对象作为酒店图像。请给我一些解决方案,我可以如何从谷歌地图酒店图像。

共有1个答案

微生阳平
2023-03-14

从PlacePhoto的文档中

google.maps.places.PlacePhoto对象规范

表示一个位置的照片元素。

方法

getUrl(选项:照片选项)

返回值:字符串

返回与指定选项对应的图像URL。必须包含至少指定了maxWidth或maxHeight之一的PhotoOptions对象。

属性

高度|类型:数字|照片的高度(像素)。

html|u attributes | Type:Array |要为此照片显示的属性文本。

宽度|类型:数字|照片的宽度(像素)。

要获取该位置照片的URL,请使用所需的PhotoOptions参数调用objects.getUrl方法。

var photo = results[i]['photos'][0].getUrl({maxWidth: 100});

概念小提琴的证明

代码片段:

var map1;
var infowindow;
var pyrmont = {
  lat: -33.867,
  lng: 151.195
};

function initMap() {

  map1 = new google.maps.Map(document.getElementById('Map'), {
    center: pyrmont,
    zoom: 15
  });

  var service = new google.maps.places.PlacesService(map1);
  service.nearbySearch({
    location: pyrmont,
    radius: 800,
    type: ['lodging']
  }, callback);
}

function callback(results, status) {
  if (status === google.maps.places.PlacesServiceStatus.OK) {
    var hotelname = '';
    for (var i = 0; i < results.length; i++) {
      // createMarker(results[i]);
      var name = results[i]['name'];
      var photo = null;
      if (results[i].photos && (results[i].photos.length > 0)) {
        var photo = results[i]['photos'][0].getUrl({
          maxWidth: 100
        });
      }
      if (i < 6) {
        hotelname += '<img src="' + photo + '" />';
        hotelname += '<span class="">' + name + '</span><br>';
      }
    }
    $("#hotel").html(hotelname);
  }
}
google.maps.event.addDomListener(window, "load", initMap);
html,
body,
#Map {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>
<div id="hotel"></div>
<div id="Map"></div>
 类似资料:
  • 如何在flutter应用程序中从google maps中检索我附近位置的数据

  • 我需要为一家酒店创建一个ERD,问题如下: “一套酒店的所有者希望为他或她的酒店建立一个酒店管理系统。这些酒店位于南非的主要城市和旅游景点。在每个酒店中,员工被雇佣来履行各种职责。在每个酒店中,客人预订他们选择的房间,他们根据预订的房间类型计费。给定上面的业务场景,请绘制一个实体关系图,指示所有实体和关系(基数)。” 这就是我所创造的: 我的问题 > 如果Employee_ID在Hotel中是fo

  • 1. 酒店方案 1.1. 核心能力模块 1.2. 功能列表 1.1. 核心能力模块 技能 API / 白板H5 智能家居品牌 1.2. 功能列表 功能/能力 功能描述 输出方式 品牌配置 获取品牌相关信息、绑定需要控制的品牌及同步设备 API/白板H5/若琪APP 空间隔离 可以在一个账号下创建多个独立空间(客房),一次同步 实现多个空间的独立控制 API/白板H5/若琪APP 房间管理 在空间中

  • 1. 酒店领域开放API 1.1. 权限申请 1.2. 调用方式 1.2.1. 鉴权 1.2.2. API 调用 1.1. 权限申请 资源使用方:用户可在若琪酒店后台申请应用,在应用配置时可勾选需要的权限,配置好后可将授权链接发送给资源提供方。 资源提供方:点击授权链接后,根据应用详情,用户可将名下酒店资源授权给对应的应用。 1.2. 调用方式 用户可以以应用的身份(见上文)调用酒店领域开放API

  • 我们正在使用Tarantool 1.5,对配置选项有疑问:如果我们设置以下选项: 这是否意味着fsync(2)根本不会被调用?

  • 我是谷歌地图和地点API的新手。我想得到有关酒店的唯一信息使用谷歌地方API是可能的。