javascript - Google Maps API 检查标记是否存在于多个边界

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

在将标记添加到 map 之前,我正在尝试检查标记是否已存在于我的边界中。我发现最好的方法是使用

map.getBounds().contains(marker.getPosition()) 如果标记存在于 map 上则返回 true,否则返回 false。所以在 false 上,我将标记添加到 map 上。

这工作正常,但我有多个边界,map.getBounds()似乎得到 1 个边界。

下面的代码在循环中的每个边界中设置标记,但检查标记是否仅存在于 1 个边界中。如何检查我的所有边界中是否存在标记?

我正在检查上一个函数中的标记。

function findPlaces() {      

    var boundsArray = new Array(); //my array of multiple boundaries  

    for (var i = 0; i < boundsArray.length; i++) {
      var boundary = boundsArray[i];                  

      // Perform search over this boundary
      var request = {
        bounds: boundary,
        keyword: document.getElementById("keyword").value
      };

      service.nearbySearch(request, callback); 
    }
  });
}


//Returns places and create markers
function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) {
       for (var i = 0; i < results.length; i++) {
       createMarker(results[i]);    
    }     
}   

//create markers
function createMarker(place) {                          
    var marker = new google.maps.Marker({
       position: place.geometry.location
    });

    var onMap = map.getBounds().contains(marker.getPosition());

    //if marker is not on the map, add it               
    if (onMap === false) {          
        marker.setMap(map);
    }
}

最佳答案

您可以创建所有这些 LatLngBounds 的 1 个多边形。

多边形支持多个路径,因此您所要做的就是创建一个数组,其中包含每个 LatLngBounds 的数组,其中 LatLngs 由 LatLngBounds 的 4 个顶点定义,并将该数组应用于多边形的路径属性。

此多边形现在可以与 google.maps.geometry.poly.containsLocation 一起使用以确定某个位置是否位于任何 LatLngBounds 内。

关于javascript - Google Maps API 检查标记是否存在于多个边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253929/

相关文章:

javascript - getCurrentPosition 返回什么?

ios - 使用 Google map 和 Apple map URL 方案自动开始导航

javascript - React Native Samsung Universal Link 升级到 Android 12 后停止工作

javascript - vuejs 路由器 - 要求未定义

api - jira REST API 创建问题,包括组件

django - 配置 Django-oauth-plus 时出错

php - 标记未显示在 map 上

javascript - AngularJs:如何访问 Controller 外部的全局变量?

Javascript 简单 UDF

spring - CommandLineRunner 需要一个无法找到的 bean