地图API问题

请问大佬,我现在想实现一个需求,是在PC端网站用地图搜素某个地点,比如 "高新区",然后显示地图上范围在高新区3000米以内的所有饭店,而且重点是要显示这些饭店到搜索点的距离,就类似于手机上搜索那样的,只显示距离就行,其他店面名称之类不需要.

image.png

现在PC端有这样的api吗?

image.png

我用的百度地图api的圆形搜索,显示不出距离啊...而且范围参数radius设了也不起作用... 求大佬指点.

阅读 2.7k
2 个回答

提供一个思路,基于百度地图api,首先关键字检索检索关键字获取详细地址,根据获取的详细地址解析出经纬度,最后根据解析出的经纬度进行线路规划【步行规划驾车规划公交规划】。如果要获取两点间的距离下面有示例。

var point1 = new BMap.Point(lng1,lat1);  
var point2 = new BMap.Point(lng2,lat2);  
var distance = map.getDistance(point1,point2);  //计算两点间的距离,单位是米
    /**
     * 地球半径
     */
    private static final double EARTH_RADIUS = 6378137;

    private static double rad(double d) {
        return d * Math.PI / 180.0;
    }

    /**
     * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米
     */
    public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);
        double a = radLat1 - radLat2;
        double b = rad(lng1) - rad(lng2);
        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
        s = s * EARTH_RADIUS;
        s = ((double)Math.round(s * 10000)) / 10000;
        return s;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题