अच्छी तरह से यह बहुत जटिल है। एक मोटा बॉक्स के लिए इस प्रयास करें:
if (typeof(Number.prototype.toRad) === "undefined") {
Number.prototype.toRad = function() {
return this * Math.PI/180;
}
}
if (typeof(Number.prototype.toDeg) === "undefined") {
Number.prototype.toDeg = function() {
return this * 180/Math.PI;
}
}
var dest = function(lat,lng,brng, dist) {
this._radius = 6371;
dist = typeof(dist) == 'number' ? dist : typeof(dist) == 'string' && dist.trim() != '' ? +dist : NaN;
dist = dist/this._radius;
brng = brng.toRad();
var lat1 = lat.toRad(),
lon1 = lng.toRad();
var lat2 = Math.asin(Math.sin(lat1) * Math.cos(dist) + Math.cos(lat1) * Math.sin(dist) * Math.cos(brng));
var lon2 = lon1 + Math.atan2(Math.sin(brng) * Math.sin(dist) * Math.cos(lat1), Math.cos(dist) - Math.sin(lat1) * Math.sin(lat2));
lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI;
return (lat2.toDeg() + ' ' + lon2.toDeg());
}
var northEastCorner = dest(centreLAT,centreLNG,45,10);
var southWestCorner = dest(centreLAT,centreLNG,225,10);
संपादित
ऊपर वे इसे जिस तरह से 2011 में वापस जब मैं इसे लिखा करने के लिए रास्ता नहीं था। इन दिनों गूगल मैप्स एपीआई बहुत कम तरीके से आया है। @wprater द्वारा उत्तर बहुत साफ है और कुछ नए एपीआई तरीकों का उपयोग करता है।
धन्यवाद! यह मेरे लिए काम करता है: 'var latLng = new google.maps.LatLng (32.79503, -117.24142);/* सैन डिएगो */var त्रिज्या = 2000;/* मीटर */var circle = new google.maps.Circle ({center : latLng, त्रिज्या: त्रिज्या}); var डिफ़ॉल्ट बाउंड = circle.getBounds(); ' – Ryan
ग्रेट। अच्छा समाधान! –