使用谷歌地图中的纬度和经度获取地点详细信息或建筑物名称(Places API ?)
Posted
技术标签:
【中文标题】使用谷歌地图中的纬度和经度获取地点详细信息或建筑物名称(Places API ?)【英文标题】:Get Place details or building names using latitude and longitude in Google Maps(Places API ?) 【发布时间】:2011-11-07 21:47:30 【问题描述】:有没有人知道如何使用纬度和经度在 Google Maps Places API 下获取地点详细信息?我试过谷歌搜索解决方案,但只能找到它的反面。所以简而言之,我需要找到一个纬度/经度的地方。
在有人说使用地理定位之前,我会说首先证明一个对我来说会像在黑暗中拍摄的答案。
我已经为此搜索了几个小时,但不确定如何实现这一目标。
我已经阅读了诸如this 之类的问题。
很清楚,我有46.73069,-117.16345999999999
,这将是 WSU 的“Bookie”的地方
"reference":"CmRUAAAAlgRCcYLe_HkYEFeUg9snExIKbgBTFVHTbyFkON1CTd58dH7iuJoyrPjXxWyEcoToa-Lrd7i__dpa83uGRBbrLeefEzz2hAL8pQPzx0YxHQPP4JNbrdKHW7LVUPJKwnHPEhA8PDSefSATZ6qWfT0eujRXGhRyBRL5P_vqpr7Tv7KigjgXmPJp6w"
如果您通过参考查找该地点,您就会明白这一点,但我需要通过纬度和经度才能找到匹配的地点。
【问题讨论】:
【参考方案1】:您要进行反向地理编码查找:http://code.google.com/apis/maps/documentation/javascript/services.html#ReverseGeocoding
这应该向您“证明”它:http://code.google.com/apis/maps/documentation/javascript/examples/geocoding-reverse.html 它不会在信息窗口中显示“Bookie”,但我怀疑如果您使用结果 [0] 而不是结果 [1],那可能有公司名称.你对你在这里想要做什么有点模糊;一旦你有了详细信息,你将如何处理它们?您具体需要哪些详细信息?
【讨论】:
【参考方案2】:好吧,对不起,我在这里的价值超过了一个 cmets..
所以交易是你只是得到地址..这不是一个地方条目。请参阅此处是该问题的示例。如果您在此处使用本地搜索 http://gmaps-samples-v3.googlecode.com/svn/trunk/localsearch/places.html 并现在输入“pullman cue”,您将获得该地点,但如果您使用新地点 http://code.google.com/apis/maps/documentation/javascript/examples/places-autocomplete.html,您将无法找到同一个地点。更糟糕的是,您可以通过引用调用可以调用的地方,这很奇怪,使其成为“地方,但不能保证在不同搜索中为任何给定地方返回相同的令牌”并且能够通过它调用,但在您不能通过“它可用于合并有关此地点的数据,并在不同的搜索中验证地点的身份”调用的 ID,如此处所示 http://code.google.com/apis/maps/documentation/javascript/examples/place-search.html .. 所以.. 交易是我需要在不使用折旧 api 的情况下放置“pullman cue”。
我只是想通过一些容易重复做的事情来获得一席之地.. idk
【讨论】:
【参考方案3】:好吧,我已经向前迈进了,再次渴望 cmets 而不是额外的信息类型帖子,所以这里是到目前为止的发现。
var loca = new google.maps.LatLng(46.729757182529895,-117.1616792678833);
var requested =
location: loca,
radius:.1//,
//keyword:"library"//,
//types : ['establishment']
;
var service = new google.maps.places.PlacesService(map);
service.search(requested, function(results, status)if (status == google.maps.places.PlacesServiceStatus.OK)
alert(JSON.stringify(results));
for (var i = 0; i < 1; i++)
var request = reference:results[i].reference;
var service = new google.maps.places.PlacesService(map);
//service.search(request, serach_callback);
service.getDetails(request, function(place, status)
if (status == google.maps.places.PlacesServiceStatus.OK)
alert(JSON.stringify(place));
var marker = markers[0];
google.maps.event.addListener(marker, 'click', function()
ib.close();
ib.setContent(setBoxHtml(JSON.stringify(place)));
ib.open(map, this);
);
);
//createMarked(results[i]);
);
确实给我一个地方,但它是路线,仅此而已。我想我必须给出一个关键词或类型才能得到其他任何东西。肯定是跛脚。问题是它甚至不正确的地方是什么。如果我在同一纬度和经度下使用类型或关键字大学,我认为我会得到具有这些类型“大学”的地方,我可以使用http://www.google.com/mapmaker 来证明该地方确实有该集。它确实如此。但我得到的结果是隔壁的博物馆,而不是应该出现的“CUE”。
这里有一些缺陷,因为这不仅在如何调用一个地方,而且在如何判断哪些地方(没有类型或关键字)在你的位置附近是非常不可预测的。更重要的是,您不在文档中的半径似乎确实有一个最小值,例如 10(我认为),因为 1 米应该只拾取它的 slef,但它会拾取至少 25 米以外的东西。
为什么我不能只通过 ID 来呼叫一个地点,我为什么不能以经纬度的半径获取所有地点?必须有一些简单的原因,因为我拒绝认为谷歌的地图 api 开发人员错过了整个事情的吻。
有什么想法吗? 谢谢-杰里米
【讨论】:
以上是关于使用谷歌地图中的纬度和经度获取地点详细信息或建筑物名称(Places API ?)的主要内容,如果未能解决你的问题,请参考以下文章
Google 地点详细信息经纬度坐标与跨平台地图 URL 不匹配