zhaoxing
2022-10-20 27c22df21f97cdf76dd3daca4856caabd0c9d698
更改行政区汽车显示问题
1个文件已修改
65 ■■■■■ 已修改文件
js/function_1004.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/function_1004.js
@@ -6,8 +6,12 @@
var taxi_layer;
function addTaxiLayer(item) {
var polygon_Points;
function addTaxiLayer(item) {
  taxi_layer = new mars3d.layer.GraphicLayer({
    id: item.id,
    name: item.name,
@@ -172,8 +176,46 @@
  }
}
function getTaxiPathFromServerbySN(taxi_mn, target_layer) {
// 判断一个点是否在一个区域内方法
function isInPolygon(checkPoint, polygonPoints) {
  var counter = 0;
  var i;
  var xinters;
  var p1, p2;
  var pointCount = polygonPoints.length;
  p1 = polygonPoints[0];
  for (i = 1; i <= pointCount; i++) {
      p2 = polygonPoints[i % pointCount];
      if (
          checkPoint[0] > Math.min(p1[0], p2[0]) &&
          checkPoint[0] <= Math.max(p1[0], p2[0])
      ) {
          if (checkPoint[1] <= Math.max(p1[1], p2[1])) {
              if (p1[0] != p2[0]) {
                  xinters =
                      (checkPoint[0] - p1[0]) *
                          (p2[1] - p1[1]) /
                          (p2[0] - p1[0]) +
                      p1[1];
                  if (p1[1] == p2[1] || checkPoint[1] <= xinters) {
                      counter++;
                  }
              }
          }
      }
      p1 = p2;
  }
  if (counter % 2 == 0) {
      return false;
  } else {
      return true;
  }
}
function getTaxiPathFromServerbySN(taxi_mn, target_layer) {
  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_single_path&siteid=" + taxi_mn["code"], {
    datatime1: mars3d.global_variables.queryDataTStartTaxi,
    datatime2: mars3d.global_variables.queryDataTEnd
@@ -183,11 +225,28 @@
      // 保存临时数据,为后续替换颜色做准备。
      data_list_1004_paths.set(result.data.result[0].code, result.data.result);
      var tmpPositionProperty = new Cesium.SampledPositionProperty();
      if(regionCode == 0){
      for (var i = 0, len = result.data.result.length; i < len; i++) {
        let item = result.data.result[i];
        //console.log(item);
        tmpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
      }
      }else{
        $.getJSON("./data/"+regionCode+".geojson", (result2) => {
          polygon_Points = result2.features[0].geometry.coordinates[0][0]
          for (var i = 0, len = result.data.result.length; i < len; i++) {
            let item = result.data.result[i];
            console.log(item.lon,item.lat,polygon_Points)
            let isIn = isInPolygon([item.lon,item.lat],polygon_Points)
            if(isIn){
              console.log("进来了")
                tmpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
              }
            // mpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
          }
        })
      }
      let graphic = new mars3d.graphic.ModelEntity({
        id: result.data.result[0].code,