谷歌地图V3 - 英里
问题描述:
可视地图半径怎样才能找到我的地图的可视区域的接近?谷歌地图V3 - 英里
这一切工作和为柱,以帮助其他人谁可能会寻找。
此代码通过VAR接近看你的谷歌地图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
我希望它可以帮助别人。
附加的编辑(未测试),其允许屏幕旋转如下:
// 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
另一个EDIT
// Watches for map bounds change - if so - set radius and refresh data Start
function setproximityfrommap() {
// http://*.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
};
我把编辑的代码在第一个柱。
人族
答
// Watches for map bounds change - if so - set radius and refresh data Start
function setproximityfrommap() {
// http://*.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");
}
+1我喜欢你的慷慨的做法!但是,为了保持网站的问答风格,我建议你将问题和解决方案的目标作为答案发布,然后接受它(即使它是你的)。感谢;) – bluish 2012-02-03 07:59:26
谢谢 - 我会做 - 不是肯定的是什么eticate是;) – 2012-02-03 12:25:50
我可以添加使用其他角落的检查做,因为这是在手机上的应用程序,它可以左右转动(定向明智)为好。根据以最大数字作为接近度的读数。 – 2012-02-03 12:31:15