在我的页面上,当它加载它时,获取您的位置并在您的位置设置一个标记,然后我希望它从我的数据库加载所有标记并将它们放置在地图上,但我只想加载1公里内的标记的位置。我试图设置它,但我遇到了一些麻烦。我想只显示特定半径的地理位置内的标记?
所以标记从数据库加载像这样:
<?php while($stmt -> fetch()) { ?>
var longi = "<?php echo $gLongitude; ?>";
var lati = "<?php echo $gLatitude; ?>";
var title = "<?php echo $gTitle; ?>";
setMarker(lati, longi, title);
<?php } $stmt -> close(); $mysqli -> close();?>
然后setMarker函数调用是这样的:
function setMarker(lati, longi, title) {
var latLongMarker = new google.maps.LatLng(lati,longi);
marker = new google.maps.Marker({
position: latLongMarker,
map: map,
draggable: false,
title: title
});
arrMarkers.push(marker);
}
这一切都工作正常,花花公子,并加载所有标记从数据库到地图上,但我怎样才能加载距离我1km的数据?我读了about computeDistanceBetween(),但我找不到一个拯救我生命的例子。预先感谢大家。
我结束了工作,就一定能做到这一点的是结束了更容易和更快地在这里处理你去为任何人在未来寻找这样的:
<?php while($stmt -> fetch()) { ?>
var longi = "<?php echo $gLongitude; ?>";
var lati = "<?php echo $gLatitude; ?>";
var title = "<?php echo $gTitle; ?>";
var content = 'Bus arrives at: ' + "<?php echo $gWeekdayDay; ?>";
database.push({latitude: lati, longitude: longi, markerTitle: title, content: content});
<?php } $stmt -> close(); $mysqli -> close();?>
for (var i = 0; i < database.length; i++) {
createMarker(database[i].latitude, database[i].longitude, database[i].markerTitle, initialLocation,
database[i].content);
}
function createMarker(lati, longi, title, myPosition, content) {
var latLongMarker = new google.maps.LatLng(lati, longi);
distanceCompare.push({position: latLongMarker, markerTitle: title});
setMarker(myPosition, latLongMarker, title, content);
}
function setMarker(myPosition, latLongMarker, title, content) {
distance = google.maps.geometry.spherical.computeDistanceBetween(latLongMarker, myPosition);
console.log('Distance of '+latLongMarker+ 'and original position' + myPosition + 'Is equal to '+distance);
updateResults();
if (distance < setDistance) {
addMarker(latLongMarker, title, content);
stopsfound++;
updateResults();
console.log(content);
}
}
function addMarker(position, title, content) {
console.log('Adding Marker ' + content);
marker = new google.maps.Marker({
position: position,
map: map,
title: title
});
bindInfoWindow(marker, content);
markersArray.push(marker);
}
使用,你会不得不看看地方图书馆?特别是componentRestrictions?可能对你有帮助https://developers.google.com/maps/documentation/javascript/places – lukeocom 2013-03-08 02:59:16