美文网首页
百度地图js实现拾取经纬度

百度地图js实现拾取经纬度

作者: 七百年前 | 来源:发表于2019-05-17 11:01 被阅读0次

效果如下

image.png

代码

    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">纬度</label>
            <div class="layui-input-inline">
                <input type="text" name="lat" id="bdlat" class="layui-input" value="{$info.lat}">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">经度</label>
            <div class="layui-input-inline">
                <input type="text" name="lng" id="bdlng" class="layui-input" value="{$info.lng}">
            </div>
        </div>
    </div>
    <div class="layui-form-item layui-form-text">
        <label class="layui-form-label">地图</label>
        <div class="layui-input-block">
            <input id="where" name="where" type="text" width="200px" ><input type="button" value="地图上找" class="layui-btn" onClick="searchbd()" /> <br /> 
            <div style="width:80%;height:340px;border:1px solid #ccc" id="container"></div>
        </div>
    </div>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=1121122"></script>
<script type="text/javascript">
    var lat = $('#bdlat').val();
    var lng = $('#bdlng').val();

    var map = new BMap.Map("container");//在指定的容器内创建地图实例 
    map.setDefaultCursor("crosshair");//设置地图默认的鼠标指针样式 
    map.enableScrollWheelZoom();//启用滚轮放大缩小,默认禁用。 
    var point = new BMap.Point(lng, lat);
    map.centerAndZoom(point, 13);

    map.addEventListener("click", function (e) {
        $('#bdlat').val(e.point.lat);
        $('#bdlng').val(e.point.lng);
        map.addOverlay(new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat)));
        deletePoint();
    });

    if (lat < 10 && lng < 100) {
        toLocation();
    } else {
        map.addOverlay(new BMap.Marker(point));
    }

    // 定位
    function toLocation() {
        var geolocation = new BMap.Geolocation();
        geolocation.getCurrentPosition(function (r) {
            if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                var myIcon = new BMap.Icon("/style/mobile/images/location/dd_01.png", new BMap.Size(30, 30));
                var marker = new BMap.Marker(r.point, {icon: myIcon});
                map.addOverlay(marker);
                map.panTo(r.point);
            }
        }, {enableHighAccuracy: true})
    }
  
    //地图搜索
    function searchbd() {
        var result = $('#where').val();
        var local = new BMap.LocalSearch(map, {
            renderOptions: {map: map}
        });
        local.search(result);
    }

    //清除地图所有点
    function deletePoint() {
        var allOverlay = map.getOverlays();
        for (var i = 0; i < allOverlay.length - 1; i++) {
            map.removeOverlay(allOverlay[i]);
        }
    }
</script> 

相关文章

网友评论

      本文标题:百度地图js实现拾取经纬度

      本文链接:https://www.haomeiwen.com/subject/nssnaqtx.html