Để thực hiện tìm kiếm bán kính với API, hãy sử dụng phương pháp Geometry Librarygoogle.maps.geometry.spherical.computeDistanceBetween để tính khoảng cách giữa mỗi điểm đánh dấu và kết quả mã hóa địa lý từ địa chỉ. Nếu khoảng cách đó nhỏ hơn bán kính được yêu cầu, hãy hiển thị điểm đánh dấu, hãy ẩn nó đi.
đang giả định:
- mảng của google.maps.Markers gọi gmarkers đối tượng
google.maps.Map gọi là bản đồ
function codeAddress() {
var address = document.getElementById('address').value;
var radius = parseInt(document.getElementById('radius').value, 10)*1000;
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
if (circle) circle.setMap(null);
circle = new google.maps.Circle({center:marker.getPosition(),
radius: radius,
fillOpacity: 0.35,
fillColor: "#FF0000",
map: map});
var bounds = new google.maps.LatLngBounds();
for (var i=0; i<gmarkers.length;i++) {
if (google.maps.geometry.spherical.computeDistanceBetween(gmarkers[i].getPosition(),marker.getPosition()) < radius) {
bounds.extend(gmarkers[i].getPosition())
gmarkers[i].setMap(map);
} else {
gmarkers[i].setMap(null);
}
}
map.fitBounds(bounds);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
example
Bạn chỉ cần sử dụng API địa điểm nếu bạn đang tìm kiếm kết quả từ e Địa điểm API. Nếu bạn đang tìm cách trả lại các điểm đánh dấu của riêng mình, bạn cần triển khai bằng cách sử dụng API Google Maps v3. – geocodezip
Mã hiện tại của bạn trông như thế nào? – geocodezip