V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaxueme
V2EX  ›  问与答

百度地图开发,如果拖动这个红色图标,底下箭头的周边检索如何根据拖动动态展示呢?

  •  
  •   xiaxueme · 2017-08-04 12:14:27 +08:00 · 2282 次点击
    这是一个创建于 2667 天前的主题,其中的信息可能已经有所发展或是发生改变。

    百度地图开发,如果拖动这个红色图标,底下箭头的周边检索如何根据拖动动态展示呢?

    第 1 条附言  ·  2017-08-21 17:06:52 +08:00
    1
    第 2 条附言  ·  2018-05-23 18:46:00 +08:00
    ccccc
    yao978318542
        1
    yao978318542  
       2017-08-04 14:04:00 +08:00   ❤️ 1
    这也太简单了吧!你是做的 APP 还是 web
    xiaxueme
        2
    xiaxueme  
    OP
       2017-08-04 14:15:27 +08:00
    @yao978318542 做 web 的,可不可以指点一下怎么做呢?
    yao978318542
        3
    yao978318542  
       2017-08-04 14:43:08 +08:00   ❤️ 2
    @xiaxueme #2
    为标注点绑定拖拽事件 可得到标注点的经纬度 然后逆推便可检索
    ```javascript
    marker.addEventListener("dragend", function(e){
    console.log(e.point);

    });
    ```
    yao978318542
        4
    yao978318542  
       2017-08-04 14:43:52 +08:00   ❤️ 1
    @yao978318542 #3 markdown 编辑器还真是琢磨不透呢?哎!你有神马好用的转换工具吗?
    xiaxueme
        5
    xiaxueme  
    OP
       2017-08-04 15:02:23 +08:00
    @yao978318542 除了 markdown 其他的真心不知道啥了,谢谢,我试试,
    xiaxueme
        6
    xiaxueme  
    OP
       2017-08-04 17:13:52 +08:00
    @yao978318542 这是我的代码,我写进去搜索的代码了,为何我的页面不动态显示呢?
    ```javascript
    map.addEventListener("dragend", function(e){
    var options = {
    onSearchComplete: function(results){
    if (local.getStatus() == BMAP_STATUS_SUCCESS){
    var s = [],html='';
    for (var i = 0; i < results.getCurrentNumPois(); i ++){
    s.push(results.getPoi(i).title + ", " + results.getPoi(i).address);
    }
    for(var i=0;i<s.length;i++){
    html+='<div class="r-result-box">'+'<h4>'+s[i].split(',')[0]+'</h4>'+'<p>'+s[i].split(',')[1]+'</p>'+'</div>';
    }
    console.log(html);
    $('#r-result').html(html);
    html='';
    }
    }
    };
    var local = new BMap.LocalSearch(map, options);
    local.search("小区","大厦","学校");
    });
    ```
    yao978318542
        7
    yao978318542  
       2017-08-04 17:18:59 +08:00   ❤️ 1
    @xiaxueme #6 map ?不是地图吗?你绑定他干啥 绑定你那个标注点啊
    xiaxueme
        8
    xiaxueme  
    OP
       2017-08-04 17:23:51 +08:00
    @yao978318542 不太清楚你说什么,好人帮到底,能加下 qq 么,看下代码可以嘛,我的是 1114929281,
    xiaxueme
        9
    xiaxueme  
    OP
       2017-08-04 17:27:05 +08:00
    @yao978318542 而且我绑定到点上了,数据还是第一次定位的,移动点不是动态显示的,请教一下。
    yao978318542
        10
    yao978318542  
       2017-08-04 17:28:21 +08:00   ❤️ 1
    现在上班不太方便啊 下班回去你看可以不
    xiaxueme
        11
    xiaxueme  
    OP
       2017-08-04 17:31:50 +08:00
    @yao978318542 可以啊,晚上等你,
    yao978318542
        12
    yao978318542  
       2017-08-04 18:12:31 +08:00   ❤️ 1
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
    body, html,#allmap {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
    #l-map{height:500px;width:100%;}
    #r-result{width:100%;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <title>设置点是否可拖拽</title>
    </head>
    <body>
    <div id="l-map"></div>
    <div id="r-result">
    </div>
    </body>
    </html>
    <script type="text/javascript">
    // 百度地图 API 功能
    var map = new BMap.Map("l-map");
    var point = new BMap.Point(116.400244,39.92556);
    map.centerAndZoom(point, 15);
    var marker = new BMap.Marker(point);// 创建标注
    map.addOverlay(marker); // 将标注添加到地图中
    marker.enableDragging();
    marker.addEventListener("dragend", function(e){
    console.log(e.point);
    var local = new BMap.LocalSearch(e.point, {
    renderOptions: {map: map, panel: "r-result"}
    });
    local.searchNearby("超市",e.point,1000);

    });
    </script>
    看看是不是你想要的功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2743 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.