Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript isLocationOnEdge()以拆分路由_Javascript_Google Maps - Fatal编程技术网

Javascript isLocationOnEdge()以拆分路由

Javascript isLocationOnEdge()以拆分路由,javascript,google-maps,Javascript,Google Maps,我是一名web开发人员,是巴西人,我正在为我的公司的布线系统提供服务,但是我在理解库的几何图形方面有困难,我想知道是否有任何方法可以让我知道绘制路线的位置在多边形1、2、3或4的内部。这是我划分路线,并跟踪多达4个连接。它有一张底部的图片和我已经有的图片,还有代码 function initMap() { var map = new google.maps.Map(document.getElementById("map")); function renderDirections(result)

我是一名web开发人员,是巴西人,我正在为我的公司的布线系统提供服务,但是我在理解库的几何图形方面有困难,我想知道是否有任何方法可以让我知道绘制路线的位置在多边形1、2、3或4的内部。这是我划分路线,并跟踪多达4个连接。它有一张底部的图片和我已经有的图片,还有代码

function initMap() {
var map = new google.maps.Map(document.getElementById("map"));
function renderDirections(result) {
  var directionsRenderer = new google.maps.DirectionsRenderer;
  directionsRenderer.setMap(map);
  directionsRenderer.setDirections(result);
}
var triangle1 = [
        {lat: -23.0829, lng: -46.57676},
        {lat: -23.61616, lng: -46.57483},
        {lat: -23.60694, lng: -47.54864}
    ];

 var Triangle1 = new google.maps.Polygon({
      paths: triangle1,
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor: '#00FF00',
      fillOpacity: 0.35
    });
    Triangle1.setMap(map);
var triangle2 = [
        {lat: -23.0829, lng: -46.57676},
        {lat: -23.61616, lng: -46.57483},
        {lat: -23.61131, lng: -45.67469}
    ];

 var Triangle2 = new google.maps.Polygon({
      paths: triangle2,
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor: '#4169E1',
      fillOpacity: 0.35
    });
    Triangle2.setMap(map);
var triangle3 = [
        {lat: -23.61131, lng: -45.67469},
        {lat: -23.61616, lng: -46.57483},
        {lat: -24.07554, lng: -46.57185}
    ];

 var Triangle3 = new google.maps.Polygon({
      paths: triangle3,
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor: '#FFA500',
      fillOpacity: 0.35
    });
    Triangle3.setMap(map);                                
var triangle4 = [
        {lat: -24.07554, lng: -46.57185},
        {lat: -23.60694, lng: -47.54864},
        {lat: -23.61616, lng: -46.57483}
    ];



 var Triangle4 = new google.maps.Polygon({
      paths: triangle4,
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor: '#FFFF00',
      fillOpacity: 0.35
    });
    Triangle4.setMap(map);

var directionsService = new google.maps.DirectionsService;
function requestDirections() {
  directionsService.route({
    origin: "Rua pedro jose lorenzini",
    destination: "Rua pedro jose lorenzini",
    waypoints: waypts,
    optimizeWaypoints: true,
    provideRouteAlternatives: true,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
  }, function(result) {
    renderDirections(result);
    if(google.maps.geometry.poly.containsLocation(result, Triangle1) == true) {
     alert("yes");
    }
  });
}
requestDirections(waypts);
requestDirections(waypts2);
}

我明白了

首先,我检索了将成为路由一部分的地址的坐标,我将每个地址放在其各自的字段中,然后我使用函数检查该坐标是否属于
多边形
,返回值
true
,它被放在
路由数组

 function(result) {
        for(var i = 0; i < 24; i++){
            if($("#latLgn_"+i).val() != "" || $("#latLgn"+i).val() != undefined){
                temp = $("#latLgn"+i).val()
                temp = temp.split(",")
                temp[0] = temp[0].replace("(","")
                temp[1] = temp[1].replace(")","")
                temp[0] = Number(temp[0])  
                temp [1] = Number(temp[1])
                var point = new google.maps.LatLng({lat: temp[0], lng: temp[1]})
                if(google.maps.geometry.poly.containsLocation(point, Triangle1) == true) {
                    route.push($("#latLgn"+i).val());
                }else{console.log("Not found")}
            }
        }
        renderDirections(result);
      }
函数(结果){
对于(变量i=0;i<24;i++){
if($(“#latLgn_“+i).val()!=”||$(“#latLgn”+i).val()!=未定义){
temp=$(“#latLgn”+i).val()
温度=温度拆分(“,”)
临时[0]=临时[0]。替换(“(”,“”)
临时[1]=临时[1]。替换(“)”,“”)
温度[0]=编号(温度[0])
温度[1]=编号(温度[1])
var point=new google.maps.LatLng({lat:temp[0],lng:temp[1]})
if(google.maps.geometry.poly.containsLocation(point,Triangle1)==true){
路径推送($(“#latLgn”+i).val());
}else{console.log(“未找到”)}
}
}
渲染方向(结果);
}

为了澄清,您有一个多边形,您想检查路线是否在多边形的边界内,对吗?没错,我想知道路线上的每个点在哪个边界内,您想知道它在哪个多边形中?我真正想做的是将地图分为四部分,跟踪多边形内的路线并限制其输出,因为我们平均每天交付100次,我们不能让驾驶员穿过道路。我的想法是知道地址是否属于该多边形,从而能够组装4条路由