根据经纬度获取城市信息,该方法一般用于web端定位使用。楼主用的谷歌地图api

先推荐一个网址,在这个网址里可以根据当前的经纬度信息查询城市的信息。

访问这个地址:

http://maps.google.cn/maps/api/geocode/json?latlng=32.7763644055,100.4338731743&language=EN

就能看到大概

参数:

latlng 经纬度浮点数

language 返回的语言,EN是英文,CN是中文

想要进一步试验的话,浏览器打开网址:

http://www.gpsspg.com/maps.htm

这是一个经纬度查询的网站,在打开的地图上找你想要实验的地点鼠标双击,会出现类似:

谷歌地图:31.7167557609,110.6993577756

百度地图:31.7224490000,110.7059870000

腾讯高德:31.7167569799,110.6993742387

图吧地图:31.7181258899,110.6976932987

谷歌地球:31.7188958899,110.6942132987

北纬N31°43′8.03″ 东经E110°41′39.17″

这样的提示框,选择谷歌地图字样的那一栏的数字复制下来,作为latlng参数的值访问此篇开头的url,就可以查看结果

现在可以使用你熟悉的语言针对这个api进行封装了

下面是代码方法,仅供参考和学习:

/**
 * 获取用户当前位置
 */
function geoFindMe() {
		//浏览器判断 是否支持 H5 geolocation
    if (navigator.geolocation){
        navigator.geolocation.getCurrentPosition(showPosition);
    }else{
    	alert('Geolocation is not supported by this browser.');
    }
    	//坐标查询
    function showPosition(position){
    	var	latitude = position.coords.latitude;//经度
    	var	longitude = position.coords.longitude; //维度
    	var getCityList = geiLatlng(longitude,latitude);//调用查询  获取城市列表
    		console.log(getCityList);
    }
}
geoFindMe(); //初始化调用

/**
 * 根据坐标查询城市
 * @param longitude 经度
 * @param latitude 纬度
 * result data[]
 * */
function geiLatlng(longitude,latitude){
	if(longitude !=null && latitude !=null && longitude !=undefined && latitude !=undefined){
		var  cityLsit = [];//城市列表
		var  language = 'CN'; //默认中文
    	if(window.localStorage){
    		if(window.localStorage.languages != null && window.localStorage.languages != undefined){
    			language = window.localStorage.languages.value == 'zh-en' ? 'EN' : 'CN'; //用户是否有自定义的语言
    		}
    	}
    	//根据坐标查询当前城市
    	$.ajax({
    		type:"get",
    		url:"http://maps.google.cn/maps/api/geocode/json?latlng="+latitude+","+longitude+"&language="+language, //谷歌查询接口
    		async:true,
    		data:null,
    		success:function(res){
    			if(res !=null && res.status=='OK'){
    				var data = res.results;
    				var temp = [];
    				for (x in data) {
    					if(data[x].address_components != undefined){
    						for(y in data[x].address_components){
    							if(data[x].address_components[y].types[0] == 'locality'){
    								temp.push(data[x].address_components[y].long_name);
    							}
    						}    		
    					}    						    					
    				}
    				//数组去重
				    	if(cityLsit.length > 0){
							for (var i = 0; i < cityLsit.length; i++) {
					          	if (cityLsit.indexOf(cityLsit[i]) != i) {
					             	cityLsit.splice(i,1);//删除数组元素后数组长度减1后面的元素前移
					              	i--;//数组下标回退
					          	}
				     		}
				    	}			    				
    			}
    		},
    		error:function(res){
    			alert('Position Error!');
    		}
    	});	
		return cityLsit;
	}
}

此文章仅做参考和学习。

参考:http://hao2013.cn/?id=33

猜你喜欢

转载自blog.csdn.net/qq_33270001/article/details/81809757