Javascript getBounds()包含返回的false

Javascript getBounds()包含返回的false,javascript,google-maps,Javascript,Google Maps,我希望检测标记并显示分配给矩形的值。通过研究,我发现,但它不适用于我的情况,因为我只需要一个拉特朗点。我找到了一些和我想要的相似的东西,并尝试了一下,这就是 但对我来说,这似乎不起作用。 我在下面有一个矩形: var rectangle1 = new google.maps.Rectangle({ strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35

我希望检测标记并显示分配给矩形的值。通过研究,我发现,但它不适用于我的情况,因为我只需要一个拉特朗点。我找到了一些和我想要的相似的东西,并尝试了一下,这就是

但对我来说,这似乎不起作用。 我在下面有一个矩形:

var rectangle1 = new google.maps.Rectangle({
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35,
map: map,
bounds: {
  north: -37.822802,
  south: -37.822260,
  east: 145.036010,
  west: 145.035324
}
});
我试着插入一个点,它是-37.822545145.035526,这个点在矩形内,它应该返回true,但不是。 的输入似乎已断开。它创建一个南北颠倒的矩形。使用原始矩形(
北:-37.822802,南:-37.822260
),我得到:

然而,如果我用一个对象创建矩形,我会得到:

NE2:-37.82226,145.03601   (north=-37.82226, correct)
SW2:-37.822802,145.035324 (south=-37.822802, correct)

(蓝色标记为
rectangle2
的东北/西南方向,红色标记为
rectangle1
的东北/西南方向)

应该有人在

代码片段:

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:19,
中心:{
lat:-37.82280243352756,
液化天然气:145.0353240966797
},
mapTypeId:'地形'
});
var rectangle1=新的google.maps.Rectangle({
strokeColor:“#FF0000”,
笔划不透明度:0.8,
冲程重量:2,
填充颜色:'#FF0000',
不透明度:0.35,
地图:地图,
界限:{
北面:-37.822802,
南部:-37.822260,
东区:145.036010,
西:145.035324
}
});
var rectangle2=新的google.maps.Rectangle({
strokeColor:“#FF0000”,
笔划不透明度:0.8,
冲程重量:2,
填充颜色:'#FF0000',
不透明度:0.35,
地图:地图,
边界:新的google.maps.LatLngBounds(
新的google.maps.LatLng(-37.822802145.035324),//SW
新的google.maps.LatLng(-37.822260145.036010))//NE
});
var marker=new google.maps.marker({
地图:地图,
职位:{
纬度:-37.822545,
液化天然气:145.035526
},
标题:“-37.822545145.035526”
});
var NEmark1=新的google.maps.Marker({
地图:地图,
位置:矩形1.getBounds().getNorthEast(),
标题:“NE1:+rectangle1.getBounds().getNorthEast().toUrlValue()
});
var SWmark1=新的google.maps.Marker({
地图:地图,
位置:矩形1.getBounds().getSouthWest(),
标题:“SW1:+rectangle1.getBounds().getSouthWest().toUrlValue()
});
var NEmark2=新的google.maps.Marker({
地图:地图,
位置:矩形2.getBounds().getNorthEast(),
标题:“NE2:+rectangle2.getBounds().getNorthEast().toUrlValue(),
图标:“http://maps.google.com/mapfiles/ms/micons/blue.png"
});
var SWmark2=新的google.maps.Marker({
地图:地图,
位置:矩形2.getBounds().getSouthWest(),
标题:“SW2:+rectangle2.getBounds().getSouthWest().toUrlValue(),
图标:“http://maps.google.com/mapfiles/ms/micons/blue.png"
});
fitBounds(rectangle1.getBounds());
log(rectangle1.getBounds().toUrlValue());
log(“NE1:+rectangle1.getBounds().getNorthEast().toUrlValue());
log(“SW1:+rectangle1.getBounds().getSouthWest().toUrlValue());
document.getElementById('contains')。innerHTML=“rectangle1 bounds.contains=“+rectangle1.getBounds().contains({
纬度:-37.822545,
液化天然气:145.035526
});
log(marker.getPosition().toUrlValue());
log(rectangle2.getBounds().toUrlValue());
log(“NE2:+rectangle2.getBounds().getNorthEast().toUrlValue());
log(“SW2:+rectangle2.getBounds().getSouthWest().toUrlValue());
log(rectangle2.getBounds()包含({
纬度:-37.822545,
液化天然气:145.035526
}));
document.getElementById('contains')。innerHTML+=“rectangle2 bounds.contains=“+rectangle2.getBounds().contains({
纬度:-37.822545,
液化天然气:145.035526
});
log(rectangle2.getBounds().contains(marker.getPosition());
}
html,
身体{
身高:100%;
宽度:100%;
保证金:0;
填充:0;
}
#地图{
身高:95%;
宽度:100%;
}

我想你把南北参数搞混了。(较大的负纬度数比较小的负纬度数更南)


南北切换时,js fiddle返回true。

在我看来,该点在矩形中(),在我看来似乎是一个错误。@Craicerjack但在中,它说“如果给定的lat/lng在该范围内,则返回true”。它应该检测矩形中的任何latlong点,据我所知。@geocodezip这正是我希望的情况,因为我需要弄清楚这一点:(谢谢你的详细解释,这真的很有帮助,因为我认为它仍然可以创造相同的形状,它应该可以工作,但是是的,这也是一条路要走。谢谢你我理解你的思路,但从技术上讲,从南-37到北-38的纬度范围,将在两极和耳朵的另一侧环绕359度H
NE2:-37.82226,145.03601   (north=-37.82226, correct)
SW2:-37.822802,145.035324 (south=-37.822802, correct)
function initMap() {


var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 19,
    center: {
      lat: -37.82280243352756,
      lng: 145.0353240966797
    },
    mapTypeId: 'terrain'
  });

  var rectangle1 = new google.maps.Rectangle({
    strokeColor: '#FF0000',
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: '#FF0000',
    fillOpacity: 0.35,
    map: map,
    bounds: {
      south: -37.822802,  // This is further south ...
      north: -37.822260,  // than this
      east: 145.036010,
      west: 145.035324
    }
  });
  alert(rectangle1.getBounds());
  alert(rectangle1.getBounds().contains({lat:-37.822545, lng:145.035526}));
}