【问题标题】:Using Center of Polygon as Center of Map使用多边形的中心作为地图的中心
【发布时间】:2016-10-18 22:05:02
【问题描述】:

我有一个完整的页面地图,我想做的是修复一个多边形/矩形覆盖地图的一部分,如such,这样多边形将保持不变即使,比如说,地图被拖动了。然后,我想将多边形的中心设置为搜索查询可能是什么。 Here is another image to illustrate what I mean. 不幸的是,从文档看来,您似乎只能在另一个图层中创建多边形,这些多边形仍然附着在基本地图上的特定图块上。除此之外,除了设置边界之外,文档没有列出任何设置多边形中心的方法。

因此我有几个问题:

  1. 是否甚至可以在地图上固定多边形/矩形,而不是与基础层中地图图块的位置相关,而是独立于基础层中的位置?
  2. 是否可以将多边形/矩形的中心设置为 LatLng 对象(或类似对象),然后使用此方向来定位整个地图?

附:如果您要否决我的问题,请至少说明原因并让我有机会解决您对该问题的任何问题......

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    我建议绝对定位这样的 div

    <div id="mapdiv">
    <div id="rect"></div>
    </div>
    

    和css

    #mapdiv {
      position:relative;
      width:600px;
      height:400px;
      background-color:#333;
    }
    #rect {
      position:absolute;
      top: 10%;
      left: 10%;
      width:80%;
      height:80%;
      background-color:#FFF;
    }
    

    至于在地图中使用坐标和多边形。我对路线等有一些经验,不得不说可以得到形状,但每次都需要刷新地图并进行绝对定位。不确定这是否可能

    【讨论】:

    • 是的,抱歉,我可能不够清楚。我想,多边形/矩形必须是 Google Maps API 的一部分或属于 Google Maps API(为了检索地理坐标等等),因为我计划使多边形/矩形的中心成为地图的中心,同时允许映射为整页。基本上我想要做的是操纵地图“中心”的位置。还是谢谢你的关心! @DevFX
    • 我知道可以将多边形绝对定位在地图上看似固定的位置,但可能密集的部分是计算与窗口尺寸相关的地图边界,然后减去 X 和 Y从地图边界创建多边形的边界。不过,我希望有一个更简单的方法。你怎么看?
    【解决方案2】:

    对不起,最后一个答案......误解了。您是否尝试过这个加上添加窗口宽度的偏移量

    function polygonCenter(poly) {
        var lowx,
            highx,
            lowy,
            highy,
            lats = [],
            lngs = [],
            vertices = poly.getPath();
    
        for(var i=0; i<vertices.length; i++) {
          lngs.push(vertices.getAt(i).lng());
          lats.push(vertices.getAt(i).lat());
        }
    
        lats.sort();
        lngs.sort();
        lowx = lats[0];
        highx = lats[vertices.length - 1];
        lowy = lngs[0];
        highy = lngs[vertices.length - 1];
        center_x = lowx + ((highx-lowx) / 2);
        center_y = lowy + ((highy - lowy) / 2);
        return (new google.maps.LatLng(center_x, center_y));
      }
    

    再一次关于绝对定位,那之后我还是不太确定 可能是一个很好的起点

    编辑:在堆栈上发现此链接实际上应该可以在不知道您的设置的情况下工作how-do-i-get-google-maps-to-show-a-whole-polygon

    【讨论】:

    • 我想我将首先通过从纬度坐标中减去 N 来将地图向右移动。我将通过创建一个确定像素与纬度比率的公式来计算 N。然后我可能会以类似的方式在地图上放置一个新的多边形实例。应该管用。我只是想看看有没有办法减少工作量。
    猜你喜欢
    • 2017-08-19
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多