1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> 7 <title>输入提示后查询</title> 8 <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" /> 9 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.10&key=b611395b7704abe8e26ca14c441004f9&plugin=AMap.Autocomplete,AMap.PlaceSearch"></script> 10 <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script> 11 12 <style> 13 html, 14 body, 15 #container { 16 width: 100%; 17 height: 100%; 18 } 19 </style> 20 </head> 21 <body> 22 23 <div id="container"></div> 24 <input id="tipinput"></input> 25 <input id="Search" type="button" onclick="autoInput()" value="点击查询" > </input> 26 <script type="text/javascript"> 27 28 var map = new AMap.Map("container", { 29 resizeEnable: true, 30 zoom:17, //初始化地图层级 31 }); 32 33 34 var SeraddrelatFirst=null; 35 var SeraddrelngFirst=null; 36 var SeraddrenameFirst=null; 37 var SeraddrelatSecond=null; 38 var SeraddrelngSecond=null; 39 var SeraddrenameSecond=null; 40 //输入提示 41 var autoOptions = { 42 city:"长春", 43 citylimit:true, 44 input: "tipinput" 45 }; 46 var auto = new AMap.Autocomplete(autoOptions); 47 AMap.event.addListener(auto, "select", select);//注册监听,当选中某条记录时会触发 48 function select(e) { 49 SeraddrelatFirst = e.poi.location.lat; 50 SeraddrelngFirst= e.poi.location.lng; 51 SeraddrenameFirst =e.poi.address + e.poi.name; //关键字查询查询 52 } 53 </script> 54 55 56 <script src="https://webapi.amap.com/maps?v=1.4.10&key=b611395b7704abe8e26ca14c441004f9&plugin=AMap.PlaceSearch"></script> 57 <script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/jquery-1.11.1.min.js" ></script> 58 <script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/underscore-min.js" ></script> 59 <script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/backbone-min.js" ></script> 60 <script type="text/javascript" src='https://a.amap.com/jsapi_demos/static/demo-center/js/prety-json.js'></script> 61 62 <script type="text/javascript"> 63 64 65 // 获取搜索信息 66 function autoInput(){ 67 var AddressWrite = $("#tipinput").val(); 68 var keywords = AddressWrite; 69 AMap.plugin('AMap.PlaceSearch', function(){ 70 var autoOptions = { 71 city: '长春' 72 } 73 var placeSearch = new AMap.PlaceSearch(autoOptions); 74 placeSearch.search(keywords, function(status, result) { 75 var DataCount = result.poiList.pois.length; 76 if(DataCount>0) 77 { 78 SeraddrenameSecond =result.poiList.pois[0].address+result.poiList.pois[0].name; 79 SeraddrelatSecond=result.poiList.pois[0].location.lat; 80 SeraddrelngSecond=result.poiList.pois[0].location.lng; 81 }else 82 { 83 if(SeraddrenameFirst!=null) 84 { 85 SeraddrenameSecond=SeraddrenameFirst; 86 SeraddrelatSecond=SeraddrelatFirst; 87 SeraddrelngSecond=SeraddrelngFirst; 88 }else 89 { 90 alert("地址有误,请重新填写"); 91 return false; 92 } 93 } 94 alert(SeraddrenameSecond); 95 map && map.destroy(); 96 CraztMap([SeraddrelngSecond,SeraddrelatSecond]); 97 }) 98 }) 99 } 100 </script> 101 102 103 104 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.10&key=b611395b7704abe8e26ca14c441004f9"></script> 105 <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script> 106 107 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.10&key=b611395b7704abe8e26ca14c441004f9&plugin=AMap.Geocoder"></script> 108 <script type="text/javascript"> 109 document.getElementById("container").style.visibility="hidden";//隐藏地图 110 //初始化地图对象,加载地图 111 function CraztMap(Msg) 112 { 113 var map = new AMap.Map("container", { 114 resizeEnable: true, 115 zoom:17, //初始化地图层级 116 center:Msg //初始化地图中心点 117 }); 118 119 //logMapinfo(); 120 121 map.on("complete", function(){ 122 marker = new AMap.Marker({ 123 icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", 124 position: Msg, 125 offset: new AMap.Pixel(-13, -30) 126 }); 127 marker.setMap(map); 128 Sign=marker; 129 document.getElementById("container").style.visibility="visible";//显示 130 }); 131 132 133 134 135 136 var logMapinfo = function (){ 137 var zoom = map.getZoom(); //获取当前地图级别 138 var center = map.getCenter(); //获取当前地图级别 139 // document.querySelector("#map-center").innerText = center.toString(); 140 return center; 141 }; 142 143 144 function mapMovestart(){ 145 //document.querySelector("#text").innerText = '地图移动开始'; 146 } 147 148 149 150 function mapMove(){ 151 var center = logMapinfo(); 152 153 SignDetil=[center.lng,center.lat]; 154 155 if(Sign!=null) 156 { 157 Sign.setMap(null); 158 } 159 marker = new AMap.Marker({ 160 icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", 161 position: SignDetil, 162 offset: new AMap.Pixel(-13, -30) 163 }); 164 marker.setMap(map); 165 Sign=marker; 166 //document.querySelector("#text").innerText = '地图正在移动'; 167 } 168 169 var Sign=null; 170 var SignDetil=null; 171 172 function mapMoveend(){ 173 var center = logMapinfo(); 174 175 SignDetil=[center.lng,center.lat]; 176 177 if(Sign!=null) 178 { 179 Sign.setMap(null); 180 } 181 marker = new AMap.Marker({ 182 icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", 183 position: SignDetil, 184 offset: new AMap.Pixel(-13, -30) 185 }); 186 marker.setMap(map); 187 Sign=marker; 188 var lnglat=SignDetil; 189 //document.querySelector("#text").innerText = '地图移动结束'; 190 regeoCode(SignDetil); 191 192 } 193 194 195 var geocoder; 196 function regeoCode(Msg) { 197 if(!geocoder){ 198 geocoder = new AMap.Geocoder({ 199 city: "长春", //城市设为北京,默认:“全国” 200 radius: 1000 //范围,默认:500 201 }); 202 } 203 var lnglat = Msg; 204 if(!marker){ 205 marker = new AMap.Marker(); 206 map.add(marker); 207 } 208 marker.setPosition(lnglat); 209 210 geocoder.getAddress(lnglat, function(status, result) { 211 if (status === 'complete'&&result.regeocode) { 212 var address = result.regeocode.formattedAddress; 213 return alert(address); 214 }else{alert(JSON.stringify(result))} 215 }); 216 } 217 218 219 // 事件绑定 220 function moveOn(){ 221 // log.success("绑定事件!"); 222 map.on('movestart', mapMovestart); 223 map.on('mapmove', mapMove); 224 map.on('moveend', mapMoveend); 225 } 226 // 解绑事件 227 function moveOff(){ 228 // log.success("解除事件绑定!"); 229 map.off('movestart', mapMovestart); 230 map.off('mapmove', mapMove); 231 map.off('moveend', mapMoveend); 232 } 233 moveOn(); 234 } 235 236 237 238 239 </script> 240 241 </body> 242 </html>
功能包括输入提示,根据输入地址名解析经纬度,根据经纬度逆编码查询地址,进行点标记,拖动地图进行位置更换