记ThinkPHP5.1& ThinkCMF5.1 后台接入高德地图 地图选点以及地名搜索

1 篇文章 0 订阅

<include file="public@header" />
</head>
<body>
    <div class="wrap">
        <ul class="nav nav-tabs">
            <li ><a href="{:url('community/index')}">社区管理</a></li>
            <li class="active"><a href="{:url('community/add')}">添加社区</a></li>
        </ul>
        <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('community/addpost')}">
            <div class="form-group">
                <label for="input-name" class="col-sm-2 control-label"><span class="form-required">*</span>社区名称</label>
                <div class="col-md-6 col-sm-10">
                    <input type="text" class="form-control" id="input-name" name="name">
                </div>
            </div>
            <div class="form-group">
                <label for="input-address" class="col-sm-2 control-label"><span class="form-required">*</span>社区地址</label>
                <div class="col-md-6 col-sm-10">
                    <input type="text" class="form-control" id="input-address" name="address" value="{$community.address|default=''}">
                </div>
            </div>
            <div class="form-group">
                <label for="input-address" class="col-sm-2 control-label"><span class="form-required">*</span>经纬度</label>
                <div class="col-md-6 col-sm-10">
                    纬度 : <input  id="lat" type="text" value="{$community.latitude|default=''}" name="latitude"  placeholder="请输入纬度" autocomplete="off" style="width: 40%;height:34px;padding: 6px 12px;">
                    经度 : <input id="lng"  type="text" value="{$community.longitude|default=''}" name="longitude"  placeholder="请输入经度" autocomplete="off" style="width: 40%;height:34px;padding: 6px 12px;">
                    <input type="hidden" name="m_point" value="">
                </div>
            </div>
            <div class="form-group">
                <label for="input-address" class="col-sm-2 control-label"><span class="form-required">*</span>地图</label>
                <div class="col-md-6 col-sm-10">
                     <div id="g-map" style="height: 500px;"></div>
                </div>
            </div>
            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
                </div>
            </div>
        </form>
    </div>
    <script src="__STATIC__/js/admin.js"></script>


    <!--高德地图-->
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.6&key=你的key&plugin=AMap.Autocomplete,AMap.Geocoder,AMap.PlaceSearch,AMap.CitySearch,AMap.Geolocation"></script>
<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script type="text/javascript" src="https://webapi.amap.com/demos/js/liteToolbar.js"></script>
<script src="https://webapi.amap.com/ui/1.0/main.js"></script>
<link rel="stylesheet" href="https://cache.amap.com/lbs/static/main1119.css"/>

<script type="text/javascript">
    var map,addMarker;
    var geocoder;
    var placeSearch;

    var lat = "{$community.latitude|default='39.903188'}";
    var lng = "{$community.longitude|default='116.422431'}";
    map = new AMap.Map('g-map', {
        resizeEnable: true,
        center: [lng,lat],
        zoom:16,//级别
    });

    // 创建一个 Marker 实例:
    var marker = new AMap.Marker({
    position: new AMap.LngLat(lng, lat),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
    });

    // 将创建的点标记添加到已有的地图实例:
    map.add(marker);
    map.on('click', function(e) {
        map.remove(marker);
    });

    //为地图注册click事件获取鼠标点击出的经纬度坐标
    var clickEventListener = map.on('click', function(e) {
            $("input[name='m_point']").val(e.lnglat.getLng() + ',' + e.lnglat.getLat());
            $("input[name='latitude']").val(e.lnglat.getLat());
            $("input[name='longitude']").val(e.lnglat.getLng());

            var lat = "{$community.latitude|default='39.903188'}";
            var lng = "{$community.longitude|default='116.422431'}";
            // 创建一个 Marker 实例:
            var marker = new AMap.Marker({
            position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
        });

        // 将创建的点标记添加到已有的地图实例:
        map.add(marker);
        map.on('click', function(e) {
            // 移除已创建的 marker
            map.remove(marker);
        });

        var geocoder; 
        var lnglatXY=new AMap.LngLat(e.lnglat.getLng(),e.lnglat.getLat()); 
        //console.log(lnglatXY);
        //加载地理编码插件 
        map.plugin(["AMap.Geocoder"],function(){  
            geocoder=new AMap.Geocoder({ 
            radius:1000, //以已知坐标为中心点,radius为半径,返回范围内兴趣点和道路信息 
            extensions: "all",//返回地址描述以及附近兴趣点和道路信息,默认"base" 
            output:JSON,
        }); 

        //返回地理编码结果 
        AMap.event.addListener(geocoder, "complete",geocoder_CallBack); 
            //逆地理编码 
            geocoder.getAddress(lnglatXY); 
        });
        //地理编码返回结果展示  
        function geocoder_CallBack(data){
            //console.log(data);
            var resultStr="";
            //地理编码结果数组
            var geocode = new Array();
            geocode = data.geocodes; 
            $("input[name='address']").val(data.regeocode.formattedAddress);
        }
    });

    
    //加载PoiPicker,loadUI的路径参数为模块名中 'ui/' 之后的部分
    AMapUI.loadUI(['misc/PoiPicker'], function(PoiPicker) {
      var poiPicker = new PoiPicker({
          input: 'input-name' //输入框id
      });
      //监听poi选中信息
      poiPicker.on('poiPicked', function(poiResult) {
        //用户选中的poi点信息
        //console.log(poiResult);
        map.setZoom(15);
        map.setCenter(poiResult.item.location);
        $("input[name='address']").val(poiResult.item.address);
        $("input[name='name']").val(poiResult.item.name);
        $("input[name='latitude']").val(poiResult.item.location.lat);
        $("input[name='longitude']").val(poiResult.item.location.lng);
        $("input[name='m_point']").val(poiResult.item.location.lng + ',' + poiResult.item.location.lat);
      });
    });
</script>

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值