Google Places API图片请求网址不会返回图片

时间:2017-05-05 17:48:34

标签: ios swift google-places-api

我正在尝试使用Google Places API使用SDWebImage来放置照片以异步加载图像。但是,图像未加载。我已经仔细检查过我的photo_reference是否不正确,但它与我提取的JSON数据相同。下面是我的代码,显示我是如何发出请求的。我已经解析了JSON数据,并获得了与每个地方图像相关联的photo_reference。然后我将该photo_reference放入一个URL字符串中,该字符串被放入一个数组中并在cellForRowAt表视图方法中调用。

if let results = myReadableJSON["results"] as? [JSONStandard]{
   for i in 0..<results.count{

       let item = results[i]
       let names = item["name"] as! String

       placeNames.append(names)
       print("The number of names is: ", placeNames.count)
       print("The name(s) is/are: ", placeNames[i],"\n")

      // GETTING PLACE PHOTOS AND PUTTING THEM INTO imageURL ARRAY

       if let photos = item["photos"] as? [JSONStandard]{
            for j in 0..<photos.count{

            let photo = photos[j] as JSONStandard

             let photoRef = photo["photo_reference"] as! String

             let photoURL = NSString(format: "https://maps.googleapis.com/maps/api/place/photo?maxwidth=34&photoreference=%@&key=AIzaSyD3f-rVhs_dNPnsNRorgMDw-MH23k4WrPw", photoRef) as? String

             imageURL.append(photoURL!)

      }
   }
}

使用SDWebImage方法的表视图方法

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! exploreListTableViewCell

    cell.venuesLabel.text = placeNames[indexPath.row]
    cell.venuesImage.sd_setImage(with: URL(string: imageURL[indexPath.row]), placeholderImage: #imageLiteral(resourceName: " card1"))
    cell.venuesImage.layer.cornerRadius = cell.venuesImage.frame.size.width / 2
    cell.venuesImage.clipsToBounds = true


    return cell
}

1 个答案:

答案 0 :(得分:1)

根据Google文档,成功的Place Photo请求的响应将是一张图片。图像的类型取决于最初提交的照片的类型。

如果您的请求超出可用配额,服务器将返回HTTP 403状态并显示您添加的图像,以指示已超出配额。

  1. 请检查您是否有任何错误。

  2. 确保您的API无法从Google控制台访问,且必须有效。

  3. 检查您的照片参考参数是否有效。