zoukankan      html  css  js  c++  java
  • 正向地理编码-根据输入地址获取经纬度

    1.使用的是高德地图,(鼠标指向显示提示详细信息),运行效果:

    2.前端代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <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="https://cache.amap.com/lbs/static/main1119.css"/>
        <style>
        html,body {
            100%;
            height: 100%;
            margin:0;
        }
        #container {
            height: 500px;
            100%
        }
        #operation
        {
            position: absolute;
            top: 505px;
            100%;
        }
        #input {
            position: absolute;
            left: 3px;
            45%;
        }
        #address {
            height: 250px;
            86%;
            font-size: 14px;
        }
        #location
        {
            vertical-align: top;
        }
        #show {
            position: absolute;
            right: 3px;
            54%;
        }
        #showAddress {
            height: 250px;
            86%;
        }
        </style>
        <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.9&key=xxx&plugin=AMap.Geocoder"></script>
        <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
        <script src="jquery-1.10.2.min.js" type="text/javascript"></script>
    </head>
    <body>
    <div id="container"></div>
    <div id="operation"><b>根据输入获取经纬度,为了定位更加精确,请尽可能输入详细地址。<font color="red">输入多个地址时、每个地址以回车结束</font></b>
        <div id="input">
            <textarea id="address" placeholder="请至少输入一个地址"></textarea>
            <button id="location"> 开 始 定 位 </button>
        </div>
        <div id="show"><font color="red"><b>坐标信息</b></font><br/>
        </div>
    </div>
    <script type="text/javascript">
        var googleLayerf = new AMap.TileLayer({
            getTileUrl: 'http://mt{1,2,3,0}.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x=[x]&y=[y]&z=[z]&s=Galile'
        });
        var roadNetLayerf = new AMap.TileLayer.RoadNet();
        var map = new AMap.Map("container", {
            resizeEnable: true,
            zoom: 4,
            zooms: [3, 21],
            layers: [googleLayerf, roadNetLayerf]
        });

        function geocoder(addressArray) {
            var geocoder = new AMap.Geocoder({
                city: "全国",
                radius: 1000
            });
            $.each(addressArray, function (index, value) {
                geocoder.getLocation(value, function (status, result) {
                    if (status === 'complete' && result.info === 'OK') {
                        geocoder_CallBack(value, result);
                    }
                });
            });
        }

        function addMarker(i, d) {
            var marker = new AMap.Marker({
                map: map,
                position: [d.location.getLng(), d.location.getLat()]
            });
            var infoWindow = new AMap.InfoWindow({
                content: d.formattedAddress + "<br/>坐标:" + d.location.getLng() + ',' + d.location.getLat(),
                offset: { x: 0, y: -30 }
            });
            marker.on("mouseover", function (e) {
                infoWindow.open(map, marker.getPosition());
            });
        }

        function geocoder_CallBack(value, result) {
            var resultStr = "";
            var geocode = result.geocodes;
            for (var i = 0; i < geocode.length; i++) {
                resultStr += "<b>原始地址:</b>" + value + "" + ",&emsp;&emsp;<b>坐标:</b>" + geocode[i].location.getLng() + ", " + geocode[i].location.getLat() + ",&emsp;&emsp;<b>格式地址:</b>" + geocode[i].formattedAddress + "<br/>";
                addMarker(i, geocode[i]);
            }
            map.setFitView();
            $('#show').append(resultStr);
        }

        $(function() {
            $('#location').click(function() {
                var tempStr = $('#address').val();
                if (tempStr == null || tempStr == "") {
                    alert('请至少输入一个地址');
                    return false;
                }
                tempStr = $.trim(tempStr);
                if (tempStr.length == 0) {
                    alert('请至少输入一个地址');
                    return false;
                }
                var addressArray = tempStr.split(' ');
                if (addressArray == null || addressArray.length == 0) {
                    alert('请至少输入一个地址');
                    return false;
                }
                $('#show').html('<font color="red"><b>坐标信息</b></font><br/>');
                map.clearMap();
                geocoder(addressArray);
            });
        });
    </script>
    </body>
    </html>

  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11172040.html
Copyright © 2011-2022 走看看