Google Maps v3 - Why is LatLngBounds.contains returning false

后端 未结 3 1297
梦毁少年i
梦毁少年i 2020-12-14 07:58

I have the following code in which I would expect the contains method to return true, but it returns false:

var bounds = new google.maps.LatLngBounds(
    ne         


        
相关标签:
3条回答
  • 2020-12-14 08:27

    This is the way that it worked for me:

    var bounds = new google.maps.LatLngBounds();
    bounds.extend(54.69726685890506,-2.7379201682812226);
    bounds.extend(55.38942944437183, -1.2456105979687226); 
    map.fitBounds(bounds);    
    
    0 讨论(0)
  • 2020-12-14 08:35

    Ah, brilliant. The google.maps.LatLngBounds constructor expects SouthWest and NorthEast LatLng parameters. I have somehow bungled up my coordinates and passed in NorthWest and SouthEast instead!

    var bounds = new google.maps.LatLngBounds(
        new google.maps.LatLng(54.69726685890506,-2.7379201682812226),
        new google.maps.LatLng(55.38942944437183, -1.2456105979687226)
    );
    
    var center = bounds.getCenter();  // still returns (55.04334815163844, -1.9917653831249726)
    
    var x = bounds.contains(center);  // now returns true
    

    Lesson learned: getCenter doesn't care if you created the LatLngBounds with NorthWest and SouthEast instead, but if you want contains to return a useful answer you better pass in the suggested SouthWest and NorthEast!

    0 讨论(0)
  • 2020-12-14 08:42

    I guess its easier to try this. It works for me without having to worry about NE orSW

    var bounds = new google.maps.LatLngBounds();
    bounds.extend(54.69726685890506,-2.7379201682812226);
    bounds.extend(55.38942944437183, -1.2456105979687226);
    var center = bounds.getCenter();  // still returns (55.04334815163844, -1.9917653831249726)
    var x = bounds.contains(center);  // now returns true
    

    I know this post is old, but I came searching for answers here, so thought of updating from what I have learnt.

    0 讨论(0)
提交回复
热议问题