RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 965533
Accepted
Masquitos
Masquitos
Asked:2020-04-04 22:21:17 +0000 UTC2020-04-04 22:21:17 +0000 UTC 2020-04-04 22:21:17 +0000 UTC

计算圆半径 yandex 地图

  • 772

我想在 Yandex 地图中执行此操作 1)在地图中心向用户显示一个固定大小的圆圈(作为标签,通过 css)2)圆圈的半径以米为单位计算 3)半径取决于在用户选择的缩放上。也就是放大倍数越大,半径越大,因为地图大面积落入圆内。

请告诉我该怎么做?hh.ru 服务在他们的 Android 应用程序中有类似的开发,它在找工作时工作。

也许你可以不同地设置任务 1) 计算从地图中心到它的 div`a 右侧的距离,因为如果我们将地图显示在正方形中,到哪边都没有关系取半径到。在这种情况下,半径距离应该取决于当前缩放

yandex-maps-api
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    se0ga
    2020-04-04T23:16:31Z2020-04-04T23:16:31Z

    这可以使用取自维基百科的公式来计算,但如果我们不想寻找这个公式,那么:

    var polyline, circle;
    // Отрисовать круг с радиусом, вывести радиус в консоль.
        function drawCircle(){
    // Удаляем круг и линию (можно менять их координаты если хочется)
            myMap.geoObjects.remove(polyline).remove(circle);
    // находим центр карты и координаты её углов
            var bounds = myMap.getBounds();
            var center = myMap.getCenter();
    // получаем точку лежащую справа по центру
            var rightPoint = [center[0], bounds[1][1]];
    // добавляем линию с координатами центра и правой центральной точки
            polyline = new ymaps.Polyline([center, rightPoint]);
            myMap.geoObjects.add(polyline);
    // высчитываем её длину
            var distance = polyline.geometry.getDistance();
    // выводим её в консоль
            console.log(distance);
    // добавляем круг на карту, с центром в центре карты и радиусом найденным ранее
            circle = new ymaps.Circle([center,distance]);
            myMap.geoObjects.add(circle);
        }
    // подписываемся на событие изменения размеров карты
        myMap.events.add('boundschange', drawCircle);
    // отрисовываем круг при отрисовке карты
        drawCircle();
    

    正如上面正确指出的那样,这对于具有大缩放比例的地图非常有效。但是,如果你 otzumivatsya 到整个世界,那么问题就会开始。 https://jsfiddle.net/afsmt9Lx/

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5