使用多边形中心作为地图中心

时间:2016-10-18 22:05:03

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

我有一个完整的页面地图,我想要做的是修复一个地图的一部分上的多边形/矩形,如such,这样多边形将保留在即使地图被拖动,也是同一个地方。然后,我想将多边形的中心设置为搜索查询可能的任何内容。 Here is another image to illustrate what I mean.遗憾的是,从文档中看起来好像只能在另一个图层中创建多边形,这些多边形可以保持附着在基本地图上的特定图块上。除此之外,除了设置其边界外,文档不会列出任何设置多边形中心的方法。

因此,我有几个问题:

  1. 是否可以在地图上修复多边形/矩形,而不是与基础图层中地图图块的位置无关?
  2. 是否可以将多边形/矩形的中心设置为LatLng对象(或类似的东西),然后使用此方向将地图整体定位?
  3. P.S。如果你打算回答我的问题,至少说明原因,并给我一个机会解决你的问题可能是什么......

2 个答案:

答案 0 :(得分:0)

我建议绝对定位像这样的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;
}

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

答案 1 :(得分:0)

对不起,最后的答案......被误解了。您是否尝试过此操作并添加窗口宽度偏移量

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

的情况下工作