在我的頁面上,當它加載它時,獲取您的位置並在您的位置設置一個標記,然後我希望它從我的數據庫加載所有標記並將它們放置在地圖上,但我只想加載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