【发布时间】:2015-05-19 18:05:27
【问题描述】:
寻找一种方法来模仿 Flickr API 逻辑以使用 Google 视图。
在 Flickr 上,我可以调用 flickr.photos.search 方法并获取特定位置的所有照片,如下所示:
回应:
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<photos page="1" pages="7673" perpage="100" total="767266">
<photo id="17856165012" owner="91887621@N04" secret="6d2acf3b87" server="7690" farm="8" title="Amsterdam Canal" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17830118816" owner="131827681@N05" secret="ee8b55fc5e" server="7756" farm="8" title="IMG_2209" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17668921970" owner="131827681@N05" secret="bd0061e638" server="8825" farm="9" title="IMG_2210" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17853550052" owner="131827681@N05" secret="c834e9a7eb" server="7738" farm="8" title="IMG_2212" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17856935911" owner="131827681@N05" secret="39be86bb4b" server="7723" farm="8" title="IMG_2213" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17233920844" owner="131827681@N05" secret="8be2333be3" server="7658" farm="8" title="IMG_2214" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17853542232" owner="131827681@N05" secret="8f19ee65c2" server="7747" farm="8" title="IMG_2215" ispublic="1" isfriend="0" isfamily="0" />
<photo id="17856926911" owner="131827681@N05" secret="bc0fb6dbc1" server="7667"....
然后我为每个照片 ID 调用 flickr.photos.getInfo 以获取照片信息
回应:
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<photo id="17853542232" secret="8f19ee65c2" server="7747" farm="8" dateuploaded="1432037570" isfavorite="0" license="0" safety_level="0" rotation="90" originalsecret="7848968317" originalformat="jpg" views="2" media="photo">
<owner nsid="131827681@N05" username="trashhunters" realname="Trash Hunters" location="" iconserver="7748" iconfarm="8" path_alias="trashhunters" />
<title>IMG_2215</title>
<description />
<visibility ispublic="1" isfriend="0" isfamily="0" />
<dates posted="1432037570" taken="2015-05-17 13:47:32" takengranularity="0" takenunknown="0" lastupdate="1432040217" />
<editability cancomment="0" canaddmeta="0" />
<publiceditability cancomment="1" canaddmeta="0" />
<usage candownload="1" canblog="0" canprint="0" canshare="1" />
<comments>0</comments>
<notes />
<people haspeople="0" />
<tags>
<tag id="131822341-17853542232-563433" author="131827681@N05" authorname="trashhunters" raw="blikje" machine_tag="0">blikje</tag>
<tag id="131822341-17853542232-81138" author="131827681@N05" authorname="trashhunters" raw="fanta" machine_tag="0">fanta</tag>
</tags>
<location latitude="52.367408" longitude="4.862769" accuracy="16" context="0" place_id="xQ4tawtWUL1NrOY" woeid="727232">
<locality place_id="xQ4tawtWUL1NrOY" woeid="727232">Amsterdam</locality>
<county place_id="nmbnjNtQUL_iOTHdPg" woeid="12592040">Amsterdam</county>
<region place_id="F86XYCBTUb6DPzhs" woeid="2346379">North Holland</region>
<country place_id="Exbw8apTUb6236fOVA" woeid="23424909">Netherlands</country>
</location>
<geoperms ispublic="1" iscontact="0" isfriend="0" isfamily="0" />
<urls>
<url type="photopage">https://www.flickr.com/photos/trashhunters/17853542232/</url>
</urls>
</photo>
</rsp>
我对经度、纬度、耗时和用户信息感兴趣。我查看了Google places API,但找不到方法。
更新: 为了清楚起见,我在 Google API 上找到了 place details 请求,但照片结果不包含位置或用户数据:
..."photos" : [
{
"height" : 2322,
"html_attributions" : [
"\u003ca href=\"//lh5.googleusercontent.com/-QO7PKijayYw/AAAAAAAAAAI/AAAAAAAAAZc/fTtRm3YH3cA/s100-p-k/photo.jpg\"\u003eWilliam Stewart\u003c/a\u003e"
],
"raw_reference" : {
"fife_url" : "https://lh3.googleusercontent.com/-7mKc4261Edg/VB01Tfy2OWI/AAAAAAAADII/BHs-SIudu64/k/"
},
"width" : 4128
},...
任何建议将不胜感激:)
【问题讨论】:
-
API 调用有点复杂。您按纬度/经度提出请求。您将获得一个地点或地点列表,具体取决于您对所寻找内容的具体程度。然后,您对图像进行 API 调用,然后对每个图像 URL 进行另一个 API 调用。
-
我正在使用不需要 API 密钥 BC 的旧 API,API 密钥是特定于域的。新的 API 更好。但是,如果您要结束问题,我已经完成了 70%,但注意到您已经接受了答案。 LMK,如果您仍然愿意将实施作为答案或对当前答案感到满意。
-
当然!我很高兴得到另一种方法,谢谢!
-
您想要 Google 全景街景、当地地方的 G+ 照片,还是(我怀疑)两者兼而有之?您想要批量上传所有图片,还是逐个选择相关的图片?
-
不,David Mulder 的回答是正确的。您想要的一切都可用,但确实无法访问图片标题、cmets 等 G+ 元数据。谷歌在过去一个月中发布了一些针对合并地图和 G+ 的主要版本,但他们要么没有得到提供此信息,或对此不感兴趣
标签: javascript api google-maps google-places-api flickr