2012-02-03 18 views
13

में देखा जा सकता मानचित्र त्रिज्या मैं अपने नक्शे के दृश्यमान क्षेत्र की निकटता मिल सकती है?गूगल मैप्स v3 - मील

यह सब काम करता है और जो अन्य लोग देख रहे हैं उनकी मदद करने के लिए एक पोस्ट है।

यह कोड आपके Google मानचित्र v3 और आपके वर्तमान मानचित्र दृश्य के मील में त्रिज्या के विभिन्न निकटता द्वारा आउटपुट को देखता है।

अपने HTML में सुनिश्चित करें कि आप

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

पुस्तकालयों के रूप में = ज्यामिति यह सक्षम बनाता है।

// 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 

मुझे उम्मीद है कि यह किसी की मदद करेगा।

एक अतिरिक्त संपादित करें (untested) जो स्क्रीन रोटेशन के लिए अनुमति देता है इस प्रकार है:

// 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 

एक और संपादित करें

// 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 
}; 

मैं पहली पोस्ट में संपादित कोड डाल दिया।

Terran

+2

+1 मैं अपने उदार दृष्टिकोण पसंद है! लेकिन, साइट की क्यू एंड ए शैली पर बने रहने के लिए, मेरा सुझाव है कि आप प्रश्न में समाधान और समाधान के रूप में समाधान पोस्ट करें और फिर इसे स्वीकार करें (भले ही यह आपका हो)। धन्यवाद;) – bluish

+0

धन्यवाद - मुझे क्या करना होगा - Wasnt यकीन है कि क्या eticate था;) –

+0

मैं एक चेक अन्य कोनों का उपयोग कर जोड़ने के साथ कर सकता के रूप में यह एक पल्टी किया जा सकता है जो उन्मुखीकरण वार) एक फोन पर एप्लिकेशन (और साथ ही के लिए है। रीडिंग के आधार पर सबसे बड़ी संख्या को उपयोग करने के निकटता के आधार पर। –

उत्तर

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"); 
} 
संबंधित मुद्दे