我有一个searchlocationNear函数,我传递地理编码数据,我需要根据经纬度值计算距离,但在距离的警报函数期间显示未定义是他们的代码有任何问题。
function searchLocationsNear(center) {
var radius = document.getElementById('radiusSelect').value;
lat1=center.lat();
alert(lat1);
lng1=center.lng();
alert(lng1);
var distance1=( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) ;
alert(distance1);
var searchUrl = 'example.xml';
GDownloadUrl(searchUrl, function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName('marker');
map.clearOverlays();
var sidebar = document.getElementById('sidebar');
sidebar.innerHTML = '';
if (markers.length == 0) {
sidebar.innerHTML = 'No results found.';
map.setCenter(new GLatLng(40, -100), 4);
return;
}
答案 0 :(得分:3)
我不认为代码应该显示任何内容,因为您使用的是未定义的变量。在JavaScript中,所有数学函数都在the Math object下。所以使用Math.sin
等等。
如果Google的地图库已经包含用于计算两点之间距离的内容,那么也可能值得一试。这听起来像他们肯定会包含的东西。
答案 1 :(得分:2)
使用Math对象:Math.sin()
和Math.cos()
答案 2 :(得分:1)
您可以查看包含三角函数的Math object。