百度地图引入

百度地图

代码片复制

下面展示一些 内联代码片

首先你要在你的页面中为AMapUI留出一个空间
然后就行了
<%--地图--%>
<script type="text/javascript">

    function map(longitude,latitude){
        AMapUI.loadUI(['misc/PositionPicker'],function(PositionPicker) {

            var map = new AMap.Map('container', {
                zoom:16,//缩放级别
                <%--<c:if test="${ empty longitude && empty latitude }">--%>
                <%--center: ['113.636991', '34.736983'],//设置地图中心点坐标--%>
                <%--</c:if>--%>
                center: [longitude, latitude],//设置地图中心点坐标

                showIndoorMap: false, // 是否在有矢量底图的时候自动展示室内地图,PC默认true,移动端默认false
                resizeEnable: true, //是否监控地图容器尺寸变化,默认值为false
                keyboardEnable: false, //地图是否可通过键盘控制,默认为true
                doubleClickZoom: false, // 地图是否可通过双击鼠标放大地图,默认为true
                zoomEnable: true, //地图是否可缩放,默认值为true
                rotateEnable: false, // 地图是否可旋转,3D视图默认为true,2D视图默认false

            });
            //定位
            AMap.plugin('AMap.Geolocation', function() {
                var geolocation = new AMap.Geolocation({
                    // 是否使用高精度定位,默认:true
                    enableHighAccuracy: true,
                    // 设置定位超时时间,默认:无穷大
                    timeout: 10000,
                    // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
                    buttonOffset: new AMap.Pixel(10, 20),
                    //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
                    zoomToAccuracy: true,
                    //  定位按钮的排放位置,  RB表示右下
                    buttonPosition: 'RB'
                });

                geolocation.getCurrentPosition()
                AMap.event.addListener(geolocation, 'complete', onComplete)
                AMap.event.addListener(geolocation, 'error', onError)

                function onComplete (data) {
                    console.log("定位成功:"+data)
                }

                function onError (data) {
                    console.log("定位错误:"+data)
                }
            });

            //缩放比例尺
            AMap.plugin('AMap.ToolBar',function(){//异步加载插件
                var toolbar = new AMap.ToolBar();
                map.addControl(toolbar);


            });

            //输入提示
            var autoOptions = {
                input: "tipinput"
            };

            var auto = new AMap.Autocomplete(autoOptions);


            var placeSearch = new AMap.PlaceSearch({
                map: map
            });  //构造地点查询类
            AMap.event.addListener(auto, "select", select);//注册监听,当选中某条记录时会触发
            function select(e) {
                placeSearch.setCity(e.poi.adcode);
                placeSearch.search(e.poi.name);  //关键字查询查询
            }

            //拖拽选址
            var positionPicker = new PositionPicker({
                mode:'dragMap',//设定为拖拽地图模式,可选'dragMap'、'dragMarker',默认为'dragMap'
                map:map//依赖地图对象
            });
            positionPicker.on('success', function(positionResult) {
                // document.getElementById('lnglat').innerHTML = positionResult.position;
                // document.getElementById('address').innerHTML = positionResult.address;
                // document.getElementById('nearestJunction').innerHTML = positionResult.nearestJunction;
                // document.getElementById('nearestRoad').innerHTML = positionResult.nearestRoad;
                // document.getElementById('nearestPOI').innerHTML = positionResult.nearestPOI;
                console.log( positionResult.position)

                $("#longitude").val(positionResult.position.lng);
                $("#latitude").val(positionResult.position.lat);
            });
            positionPicker.start();

        });
    }
</script>
### 动态覆盖物的实现 在百度地图API中,为了实现实时更新或动态显示的信息,可以采用创建并管理多个覆盖物的方式。对于动态覆盖物而言,通常涉及周期性的数据获取以及根据新数据调整现有覆盖物的位置、样式或是直接替换旧有覆盖物。 #### 创建基础地图实例 首先初始化一个基本的地图对象: ```javascript var map = new BMap.Map("container"); // 创建地图实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和缩放级别 ``` #### 添加单个静态覆盖物作为起点 通过`new BMap.Marker()`函数来创建一个新的标记,并将其添加至地图上: ```javascript var point = new BMap.Point(116.404, 39.915); var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图当中 ``` #### 实现动态效果的关键技术 要使覆盖物具备动态特性,可以通过定时器或其他事件触发机制定期改变这些覆盖物的状态。例如,每间隔一段时间重新定位某个特定位置上的Marker: ```javascript function updateMarkerPosition(lat, lng){ var newPos = new BMap.Point(lng,lat); marker.setPosition(newPos); // 更新marker的位置 } setInterval(function(){ // 假设这里是从服务器端拉取最新的经纬度信息 let lat = /* 获取纬度 */; let lng = /* 获取经度 */ ; updateMarkerPosition(lat,lng); }, 2000); // 每两秒执行一次位置刷新操作 ``` 当需要移除不再使用的覆盖物时,可利用`removeOverlay()`方法单独处理不需要的对象[^3];如果整个场景下的所有覆盖物都需要被清理,则可以选择效率更高的`clearOverlays()`来进行批量清除。 另外,在某些情况下可能还需要自定义更复杂的覆盖物形式,比如带有动画效果的文字气泡或者是图片图标等。这时就需要借助HTML DOM元素配合JavaScript脚本来完成更加个性化的视觉呈现[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值