From ab663303cf980d26b436bd16ce379c0ce0ad9d4d Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期一, 24 十月 2022 01:06:26 +0800
Subject: [PATCH] 添加权限
---
js/function_1004.js | 78 ++++++++++++++++++++++++++++++++++++---
1 files changed, 72 insertions(+), 6 deletions(-)
diff --git a/js/function_1004.js b/js/function_1004.js
index 4e94664..2d60568 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,34 @@
// 淇濆瓨涓存椂鏁版嵁锛屼负鍚庣画鏇挎崲棰滆壊鍋氬噯澶囥��
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){
+ $.getJSON("./data/shanghai.json", (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];
+ let isIn = isInPolygon([item.lon,item.lat],polygon_Points)
+ if(isIn){
+ 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