【问题标题】:Google Maps fitBounds into specific area谷歌地图 fitBounds 到特定区域
【发布时间】:2013-07-31 18:14:59
【问题描述】:

我想实现以下目标:“将可能分布在大范围 lat、lng 的标记数组放置到将 fitbounds 放置在自定义矩形内的 fitbounds 方法中。”

下面的图片应该阐明我想要实现的目标。基本上,我有一组标记,我想确保它们始终适合我页面右侧的一个小框。

白盒包含一些与标记有关的信息,这些信息将始终存在,因此我不希望任何标记隐藏在白盒后面,如果我能定义它们位于黑盒内,我会很高兴. (注意黑框只是这个问题的视觉参考)。

【问题讨论】:

    标签: google-maps gis


    【解决方案1】:

    您可以使用 containsLocation 确保点位于多边形内。见here

    当您遍历数组中的每个坐标对时,验证该位置是否在多边形区域内,然后相应地添加到地图中。您还可以为这些点设置一个属性以“定义”它们的范围。

    var latlng = new google.maps.latLng(array[n]);
    if (google.maps.geometry.poly.containsLocation(latlng, polygon)){  
         marker = new google.maps.Marker({
             position: latlng,
             map: map
         });
         marker.dataset.box = 'blackbox';
    } else {  
         alert('Not inside black box');
    }
    

    如果您使用的是 HTML5,则可以将数据集属性添加到多边形内的标记。

    marker.dataset.box = 'blackbox';
    

    如果没有,可以使用setAttribute。

    marker.setAttribute('data-box', 'blackbox');
    

    【讨论】:

    • 这并不能真正回答我的问题。我不需要检查某个区域中是否存在数据,而是想放大/缩小并移动地图,以便我的所有标记都放置在屏幕的特定部分。
    • 我知道您不希望标记被白框区域覆盖。从您的原始帖子中,听起来您只希望出现黑框中的标记,如果是这样,我的上述答案将起作用。如果要将所有标记都放入黑盒中,则需要更改标记的坐标以适合框的边界,或者需要将整个地图放入黑盒中。不是很清楚你想要什么。
    • 消除任何混乱。标记可以分布在广泛的 lat/lng 范围内(例如,它们可能都在华盛顿州,或者该范围可能包括澳大利亚、德国、美国的一些标记)。我希望我可以移动和/或调整(放大/缩小)地图的大小(无论标记在哪里),以使所有标记看起来都在黑匣子区域中组合在一起。跨度>
    猜你喜欢
    • 2016-06-16
    • 2017-10-09
    • 2012-01-15
    • 2017-12-10
    • 1970-01-01
    • 2012-05-03
    • 2011-12-31
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多