From 27c22df21f97cdf76dd3daca4856caabd0c9d698 Mon Sep 17 00:00:00 2001
From: zhaoxing <zhaoxing@shsening.com>
Date: 星期四, 20 十月 2022 13:22:14 +0800
Subject: [PATCH] 更改行政区汽车显示问题

---
 js/function_1004.js |   71 ++++++++++++++++++++++++++++++++---
 1 files changed, 65 insertions(+), 6 deletions(-)

diff --git a/js/function_1004.js b/js/function_1004.js
index e8f9397..8bbace7 100644
--- a/js/function_1004.js
+++ b/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,10 +225,27 @@
       // 淇濆瓨涓存椂鏁版嵁锛屼负鍚庣画鏇挎崲棰滆壊鍋氬噯澶囥��
       data_list_1004_paths.set(result.data.result[0].code, result.data.result);
       var tmpPositionProperty = new Cesium.SampledPositionProperty();
-      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))
+
+      if(regionCode == 0){
+        for (var i = 0, len = result.data.result.length; i < len; i++) {
+          let item = result.data.result[i];
+          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({

--
Gitblit v1.9.1