• 正向地理编码-根据输入地址获取经纬度


    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>

  • 相关阅读:
    vi简单操作说明
    start django server
    计划
    在C#程序中使用ocx的方法
    在存储过程中使用另一个存储过程返回的查询结果集
    Java位操作大全(通用于C语言)
    对面象对象概念的理解、解释
    读书笔记 UltraGrid(14)
    Svcutil使用点滴
    水晶报表使用push模式(2)
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11172040.html
Copyright © 2020-2023  润新知