高德地圖使用(一)在頁面中通過自動提示選擇位置,標點及獲取詳細信息

實現功能: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> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章