| | |
| | | var taxi_layer; |
| | | |
| | | |
| | | function addTaxiLayer(item) { |
| | | var polygon_Points; |
| | | |
| | | |
| | | |
| | | |
| | | function addTaxiLayer(item) { |
| | | taxi_layer = new mars3d.layer.GraphicLayer({ |
| | | id: item.id, |
| | | name: item.name, |
| | |
| | | } |
| | | } |
| | | |
| | | 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 |
| | |
| | | // 保存临时数据,为后续替换颜色做准备。 |
| | | 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({ |