實現功能:1.自動提示 2.單擊獲取經緯度 3.單擊標點 4.逆向地理編碼獲取詳細信息 5.向iframe父窗口傳值 6.關閉子窗口(easyui窗口)
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>鼠標拾取地圖座標</title>
<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
<script type="text/javascript"
src="http://webapi.amap.com/maps?v=1.3&key=de4d841a9e2138bf29b9c846d5969dea&plugin=AMap.Autocomplete,AMap.Geocoder"></script>
<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${pageContext.request.contextPath}/js/jquery-1.9.1.js"></script>
</head>
<body>
<div id="container"></div>
<div id="myPageTop">
<table>
<tr>
<td>
<label>按關鍵字搜索:</label>
</td>
<td class="column2">
<label>左擊獲取經緯度:</label>
</td>
<td class="column2">
</td>
</tr>
<tr>
<td>
<input type="text" placeholder="請輸入關鍵字進行搜索" id="tipinput">
</td>
<td class="column2">
<input type="text" readonly="true" id="lnglat"><input type="text" readonly="true" id="address">
</td>
<td >
<input type="button" readonly="true" id="submitmap" value="確定2" onclick="return submitmap();">
</td>
</tr>
</table>
</div>
<script type="text/javascript">
//創建標點、地圖對象
var marker,map = new AMap.Map("container", {
resizeEnable: true
});
//爲地圖註冊click事件獲取鼠標點擊出的經緯度座標
var clickEventListener = map.on('click', function(e) {
document.getElementById("lnglat").value = e.lnglat.getLng() + ',' + e.lnglat.getLat()
//添加標記點
addMarker(e.lnglat);
});
// AMap.event.addListener(map,'click',getLnglat); //點擊事件 另一種監聽調用方式
var auto = new AMap.Autocomplete({
input: "tipinput",
city:"瀋陽"
});
AMap.event.addListener(auto, "select", select);//註冊監聽,當選中某條記錄時會觸發
function select(e) {
if (e.poi && e.poi.location) {
map.setZoom(15);
map.setCenter(e.poi.location);
}
}
//提交表單方法
function submitmap(){
var lntlat = $('#lnglat').val();
regeocoder(lntlat);
//關閉父窗口--使用easyui打開窗口、關閉窗口方法
window.parent.$('#w').window('close');
}
//逆地理編碼
function regeocoder(lnglat) {
var lnglatXY = lnglat;
var geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "all"
});
geocoder.getAddress(lnglatXY, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
geocoder_CallBack(result);
}
});
}
//逆地理編碼回調方法
function geocoder_CallBack(data) {
var address = data.regeocode.formattedAddress; //返回地址描述
//給父窗口賦值--視情況決定
$(window.parent.$("#address1").val(address));
}
// 實例化點標記
function addMarker(lnglat) {
if (marker) {
return;
}
marker = new AMap.Marker({
icon: "http://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
position: lnglat
});
marker.setMap(map);
}
</script>
</body>
</html>