背景:
我正在制作一个使用HTML/CSS/Javascript构建的网站/应用程序,它将使用地理位置(Google Maps API)来查找用户的位置(地理位置),并返回给他们例如,距离他们当前位置最近的5个水上乐园,以便他们能够导航到其中一个位置。我正在使用Google Fusion Tables向他们返回结果。
问题:
我已经成功地...
- 找到用户的位置并在那里放置标记(使用Map API/geolocation)
- 返回了3个位置,并为这些3个位置放置了标记(我使用了Fusion Tables,并将结果限制为3个)
我想要能够...
- 仅返回用户最接近的3个位置(即计算用户位置到最近的水上乐园的距离)
- 放置一个“侧边栏”或列出这3个位置的列表,详细说明我的Fusion Table中的名称、地址和其他字段
我在下面的代码中创建了一个Fiddle,展示了我目前所拥有的内容。下面的代码是我的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/
任何帮助都将不胜感激。我已经花了一些时间研究这个问题,但出于某种原因,我无法将其全部整合起来。非常感谢您提供的任何帮助/资源!
codeAddress()
和随后的函数将与我的现有代码很好地融合。再次感谢! - james