地址解析

地址解析是解析一个已知的具体地址,并将此地址标记到地图上。此例是解析北京中关村东路一号清华科技园9号楼的位置,然后标记到地图上。

关键代码

function callback(a){//回调函数 标点
     if(a.status=='ok'){
         var geometry=a.data[0];
         new sogou.maps.Marker({
             map:map,
             title:geometry.address,
             position:geometry.location
         });
     }

};
var request={address:{addr:'北京中关村东路一号清华科技园9号楼',city:'北京'}}
var geo=new sogou.maps.Geocoder();
geo.geocode(request,callback);
			

代码解析

首先要先初始化一个Geocoder实例,设置请求参数。调用geocode方法。

var request={
	address:{ //使用address参数
		addr:'北京中关村东路一号清华科技园9号楼',
		city:'北京' //建议添加城市,写了城市结果会更准确
	}
}
var geo=new sogou.maps.Geocoder();
geo.geocode(request,callback);
			

接下来将地址解析的结果返回给回调函数,以标记的方式显示到地图上。

function callback(a){//回调函数 标点
     if(a.status=='ok'){//有结果返回
         var geometry=a.data[0];//取出第一个结果
         new sogou.maps.Marker({//以第一个数据结果为准,创建一个标记
             map:map,
             title:geometry.address,
             position:geometry.location,
			 label:{visible:true}
         });
     }

};
			

完整代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>地址解析</title>
<style type="text/css">
 #map{position:absolute;width:400px; height:300px;}
</style>
<script type="text/javascript" src="//api.go2map.com/maps/js/api_v2.5.1.js"></script>
</head>

<body>
    <div id="map" style="float:left"></div>
	<div id="result" style="margin-left:400px;font-size:12px;width:550px;">

	</div>
</body>
<script>
/**
*地址解析
*/
var myLatLng = new sogou.maps.Point(12949482.781246997,4837105.69140625);
var myOptions = {
  zoom: 15,
  center: myLatLng
};
var map = new sogou.maps.Map(document.getElementById("map"), myOptions);
function callback(a){//回调函数 标点
     if(a.status=='ok'){
         var geometry=a.data[0];
         new sogou.maps.Marker({
             map:map,
             title:geometry.address,
             position:geometry.location,
			 label:{visible:true}
         });
     }

};
var request={address:{addr:'北京中关村东路一号清华科技园9号楼',city:'北京'}}
var geo=new sogou.maps.Geocoder();
geo.geocode(request,callback);
</script>
</html>

			

运行代码