通过经纬度得到城市名称

解决办法:

通过百度JS API的逆地址解析接口。(详见:http://developer.baidu.com/map/jsdemo.htm#i7_2)


代码示例:

// 检测浏览器是否支持地理定位功能
if (navigator.geolocation) {
	navigator.geolocation.getCurrentPosition(showPosition,showError);

} else {
	alert('浏览器不支持定位功能!');
}

// 得到坐标信息
function showPosition(position)
{
	var longitude = position.coords.longitude;
	var latitude = position.coords.latitude;
	alert("经度: " + longitude + "纬度: " + latitude);
	
        // 使用百度地图JS API
	var point = new BMap.Point(longitude,latitude);
	
	var geoc = new BMap.Geocoder();
	geoc.getLocation(point, function(rs){
		var addComp = rs.addressComponents;
		alert('您所在城市:'+addComp.city);
	});
}

// 得到错误信息
function showError(error)
{
	switch(error.code) 
	{
	case error.PERMISSION_DENIED:
	  alert("用户拒绝对获取地理位置的请求。");
	  break;
	case error.POSITION_UNAVAILABLE:
		alert("位置信息是不可用的。");
	  break;
	case error.TIMEOUT:
		alert("请求用户地理位置超时。");
	  break;
	case error.UNKNOWN_ERROR:
		alert("未知错误。");
	  break;
	}
}


你可能感兴趣的:(JavaScript)