我正在使用Google Maps API创建地理位置页面。我根据我的地理位置检查一个位置是否在50英里范围内。我的计算工作。我的问题是显示每个位置的信息。
默认情况下,该页面会显示所有位置。 如果用户点击“使用我的位置”,地图将对其位置进行地理编码并将其显示在地图上,并使用Haversine算法将距离英里与所有商店进行比较。 ```
for(i = 0; i < locationData.length; i++){
latCooridnate = Number(locationData[i].latitude);
lngCooridnate = Number(locationData[i].longitude);
milesFromGeolocation = distance(pos.lat, pos.lng, latCooridnate, lngCooridnate);
searchRadius = Math.round( milesFromGeolocation * 10 ) / 10;
testing = false;
if(searchRadius <= 50){
jQuery('.locations li').remove();
testing = true;
if (testing == true) {
jQuery('.locations').append('<li id="'+ i +'" class="location-name"><div><p class="location-nickname">' + locationData[i].name + '</p><p class="address-part-one">' + locationData[i].address_part_one + '</p>' + addressPartTwo + '<p class="city-state-zip">' + locationData[i].city + ' ' + locationData[i].state + ' ' + locationData[i].zipcode + '</p><i style="float: left; margin-left: -25px; margin-top: 2px; color: #8fc2db;" class="fa fa-phone"></i><p class="phone-number">' + locationData[i].phone_number + '</p><i style="float: left; margin-left: -25px; margin-top: 2px; color: #8fc2db;" class="fa fa-clock-o"></i><p class="hours">' + currentDayWorkHours + '</p><p class="location-button"><a href="' + locationData[i].url + '">Book an Appointment</a></p><p class="view-location">View Locations Details ></p></div></li>');
}
}
};
当我在50英里范围内安装所有商店时,我看到了正确的商店。我认为jQuery append方法每次都会被覆盖,而不是添加。我希望这是有道理的。
答案 0 :(得分:1)
执行以下行:
jQuery('.locations li').remove();
..在循环之前,否则你只会看到最后一个位置