2012-02-03 36 views
13

yılında Görüntülenebilir haritası yarıçapı nasıl haritanın görünür alanın yakınlığını bulabilirim?Google Maps v3 - mil

Bütün bunlar çalışır ve bakıyor olabilir başkalarına yardım etmek bir yazıdır.

Bu kod var yakınlığa göre Google Map v3 ve çıkışlar adresinden mevcut harita görünümünün mil yarıçapı görünüyor.

sen = geometri bunu sağlayan

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=geometry"></script> 

kütüphaneler olarak sahip HTML'nize emin olun.

// Get Gmap radius/proximity start 
var bounds = new google.maps.LatLngBounds(); 
var sw = bounds.getSouthWest(); 
var ne = bounds.getNorthEast(); 

var proximitymeter = google.maps.geometry.spherical.computeDistanceBetween (sw, ne); 
var proximitymiles = proximitymeter * 0.000621371192; 
alert(" " + proximitymiles + " Miles Proximity"); 
var proxmity = proximitymiles; 
// Get Gmap radius/proximity End 

Umarım birilerine yardımcı olur. ekran döndürme sağlar

ek bir düzenleme (denenmemiş) aşağıdaki gibidir:

// Get Gmap radius/proximity start 
var bounds = new google.maps.LatLngBounds(); 
var sw = bounds.getSouthWest(); 
var ne = bounds.getNorthEast(); 
var se = bounds.getSouthEast(); 
var nw = bounds.getNorthWest(); 

var proximitymeterswne = google.maps.geometry.spherical.computeDistanceBetween (sw, ne); 
var proximitymetersenw = google.maps.geometry.spherical.computeDistanceBetween (se, nw); 

if (proximitymeterswne > proximitymetersenw) {proximitymeterswne = proximitymiles} 
else {if (proximitymetersenw > proximitymeterswne) {proximitymetersenw = proximitymiles};}; 

var proximitymiles = proximitymeter * 0.000621371192; 
alert(" " + proximitymiles + " Miles Proximity"); 
var proxmity = proximitymiles; 
// Get Gmap radius/proximity End 

başka bir düzenleme

// Watches for map bounds change - if so - set radius and refresh data Start 
function setproximityfrommap() { 
    // http://stackoverflow.com/questions/3525670/radius-of-viewable-region-in-google-maps-v3 
    // Get Gmap radius/proximity start 
    var bounds = new google.maps.LatLngBounds(); 
    // bounds = map.LatLngBounds(); 
    //center = new google.maps.LatLng(); 

    ne = bounds.getNorthEast();  
    center = map.getCenter(); 

    //var center = map.LatLngBounds.getCenter(); 
    //var ne = map.LatLngBounds.getNorthEast(); 

    // r = radius of the earth in statute miles 
    var r = 3963.0; 

    // Convert lat or lng from decimal degrees into radians (divide by 57.2958) 
    var lat1 = center.lat()/57.2958; 
    var lon1 = center.lng()/57.2958; 
    var lat2 = ne.lat()/57.2958; 
    var lon2 = ne.lng()/57.2958; 

    // distance = circle radius from center to Northeast corner of bounds 
    proximity = r * Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)); 
    $('#proximity').val(proximity); 
    // Get Gmap radius/proximity End 
}; 

ilk mesaj düzenlenebilir kodu yerleştirin.

Terran

+2

+1 Ben senin cömert bir yaklaşım gibi! Ancak, sitenin Soru ve Cevap stilinde kalmak için, soruya ve çözüm yolundaki hedefi bir yanıt olarak göndermenizi ve sonra kabul etmenizi (sizinkinden bile olsa) tavsiye ederim. Teşekkürler;) – bluish

+0

teşekkürler - yapacağız - eticate neydi Wasnt emin;) bu yanı döndü edilebilecek bir telefonda bir uygulama (bilge yönlendirme) için olduğu gibi diğer köşeleri kullanarak çek ekleyerek yapabilirdi –

+0

. Kullanıma yakınlık olarak en büyük sayıyı alan okumalara dayanmaktadır. –

cevap

10
// Watches for map bounds change - if so - set radius and refresh data Start 
function setproximityfrommap() { 
    // http://stackoverflow.com/questions/3525670/radius-of-viewable-region-in-google-maps-v3 
    // Get Gmap radius/proximity start 
    // First, determine the map bounds 
    var bounds = map.getBounds(); 

    // Then the points 
    var swPoint = bounds.getSouthWest(); 
    var nePoint = bounds.getNorthEast(); 

    // Now, each individual coordinate 
    var swLat = swPoint.lat(); 
    var swLng = swPoint.lng(); 
    var neLat = nePoint.lat(); 
    var neLng = nePoint.lng(); 

    var proximitymeter = google.maps.geometry.spherical.computeDistanceBetween(swPoint, nePoint); 
    var proximitymiles = proximitymeter * 0.000621371192; 
    proxmity = proximitymiles; 
    console.log("Proxmity " + proximitymiles + " miles"); 
}