【发布时间】:2013-08-20 12:40:20
【问题描述】:
背景:
我正在开发一个使用 HTML/CSS/Javascript 构建的网站/应用程序,它将使用地理位置 (Google Maps API) 来查找用户位置(地理位置)并返回给他们,例如最接近他们的 5 个水上乐园在他们当前所在的那个位置,因此他们将能够导航到这些位置之一。我正在使用 Google Fusion Tables 将结果返回给他们。
问题:
我已经能够成功...
- 找到用户位置并在此处放置标记(使用 Map API/地理位置)
- 返回 5 个位置中的 3 个并为这 3 个位置放置标记(我使用了 Fusion Tables 并将结果限制为 3 个)
我希望能够……
- 仅向用户返回 3 个最近的位置(即计算从用户位置到最近水上乐园的距离)
- 在我的 Fusion Table 中放置一个“侧边栏”或这 3 个位置的列表,详细说明名称、地址和其他字段
我用到目前为止的代码在这段代码下面做了一个小提琴。下面的代码是我的 Fusion Table 查询,我假设我需要对其进行更改才能获得 3 个最近的位置(问题 #1)。问题 #2,列出这些位置,可能会使用我 Fiddle 中的所有代码。
var base_query = {
select: 'Location',
from: '1MsmdOvWLKNNrtKnmoEf2djCc3Rp_gYmueN4FGnc',
limit: 3
};
var ftLayer = new google.maps.FusionTablesLayer({
map: map,
query: $.extend({}, base_query)
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < base_query.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(base_query[i][1], base_query[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(base_query[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
};
var signChange = function () {
var options = {
query: $.extend({}, base_query)
};
};
http://jsfiddle.net/jamez14/bRLaH/2/
任何帮助将不胜感激。我已经对这个问题进行了一段时间的研究,但无论出于何种原因,我都无法将它们拼凑在一起。任何帮助/资源将不胜感激!
【问题讨论】:
-
您需要使用GViz 或Fusion Tables API v1.0 查询FusionTable 以检索要放入侧边栏中的数据。 (example with sidebar using GViz.another example with sidebar using GViz)
-
太棒了,谢谢你。前几天我真的看到了你的网站,不知怎的,我错过了最重要的例子。
-
@geocodezip - 您是否碰巧在您的网站上有任何示例处理计算从用户位置到从我的 Fusion Tables 返回的最近点的距离,并写出距离(即 10 英里外、20 英里外等)?我认为这是一个 JSONP 请求。我现在有一个 Github 项目,如果你想查看任何代码 - (github.com/jamez14/TrailFinder) - 谢谢!!
-
@geocodezip 我能够成功获得最近的 3 个位置。现在我只需要让他们远离用户位置的距离/里程。如果你碰巧有时间帮忙,那就太好了。我很感激!
-
喜欢this example?
标签: javascript jquery google-maps-api-3 geolocation google-fusion-tables