技术标签: java geoprocessor
本文整理匯總了Java中com.esri.ges.core.geoevent.GeoEvent.getField方法的典型用法代碼示例。如果您正苦於以下問題:Java GeoEvent.getField方法的具體用法?Java GeoEvent.getField怎麽用?Java GeoEvent.getField使用的例子?那麽恭喜您, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.esri.ges.core.geoevent.GeoEvent的用法示例。
在下文中一共展示了GeoEvent.getField方法的24個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Java代碼示例。
示例1: process
點讚 3
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
// Operation phase...
if (radius == null) {
radius = (Double) ge.getField(bufferEventFld);
if (radius == null) {
Exception e = new Exception("Radius is not defined in geoevent");
throw (e);
}
}
MapGeometry mapGeo = ge.getGeometry();
Point eventGeo = (Point) mapGeo.getGeometry();
double x = eventGeo.getX();
double y = eventGeo.getY();
int inwkid = mapGeo.getSpatialReference().getID();
//int inwkid = eventGeo.getSpatialReference().getWkid();
Geometry buffer = constructBuffer(x, y, radius,
units, inwkid, bufferwkid, outwkid);
SpatialReference srOut = SpatialReference.create(outwkid);
MapGeometry outMapGeo = new MapGeometry(buffer, srOut);
ge.setGeometry(outMapGeo);
return ge;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:25,
示例2: processGeometry
點讚 3
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
protected Object processGeometry(GeoEvent geoevent, String geometryField) throws Exception
{
MapGeometry geomout = null;
try
{
MapGeometry geom = (MapGeometry) geoevent.getField(geometryField);
geomout = getAreaAroundPoint(geom);
}
catch (Exception e)
{
if (geoevent.getTrackId() == null)
throw new Exception(LOGGER.translate("SERVICE_AREA_UNABLE_ERROR1", e.getMessage()), e);
else
throw new Exception(LOGGER.translate("SERVICE_AREA_UNABLE_ERROR2", geoevent.getTrackId(), e.getMessage()), e);
}
return geomout;
}
開發者ID:Esri,項目名稱:service-area-calculator-for-geoevent,代碼行數:19,
示例3: createVehicleFromGeoEvent
點讚 3
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
private Vehicle createVehicleFromGeoEvent(GeoEvent geoEvent)
{
DefaultVehicle vehicle = new DefaultVehicle();
vehicle.setCumulativeMinutes((Double) geoEvent.getField(VehicleResource.CUMULATIVE_MINUTES_KEY));
vehicle.setDeviceId((String) geoEvent.getField(VehicleResource.DEVICE_ID_KEY));
vehicle.setDeviceType((String) geoEvent.getField(VehicleResource.DEVICE_TYPE_KEY));
vehicle.setEventName((String) geoEvent.getField(VehicleResource.EVENT_NAME_KEY));
vehicle.setLastUpdated((Date) geoEvent.getField(VehicleResource.LAST_UPDATED_KEY));
Object vehicleLocationObject = geoEvent.getField(VehicleResource.GEOMETRY_KEY);
if (vehicleLocationObject != null)
{
Geometry vehicleLocation = geometryFromAttribute(vehicleLocationObject);
if (vehicleLocation != null && vehicleLocation instanceof Point)
{
vehicle.setLocation((Point) vehicleLocation);
}
}
vehicle.setNextStopSequenceNumber((Integer) geoEvent.getField(VehicleResource.NEXT_STOP_SEQUENCE_NUMBER_KEY));
vehicle.setPanic((String) geoEvent.getField(VehicleResource.PANIC_KEY));
vehicle.setSpeed((Double) geoEvent.getField(VehicleResource.SPEED_KEY));
vehicle.setVehicleGroupName((String) geoEvent.getField(VehicleResource.VEHICLE_GROUP_NAME_KEY));
vehicle.setVehicleName((String) geoEvent.getField(VehicleResource.VEHICLE_NAME_KEY));
return vehicle;
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:25,
示例4: updateETAForOneStop
點讚 3
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
private void updateETAForOneStop(GeoEvent geoEvent) throws Exception
{
if (geoEventCreator == null && (geoEventCreator = messaging.createGeoEventCreator()) == null)
return;
String trackId = (String) geoEvent.getField("TRACK_ID");
Stop stop = getNextStop(trackId);
if (stop == null)
{
LOG.error( "Couldn't update ETA for track "+trackId+" because the next stop was not found." );
return;
}
calculateETAForNextStop(stop, geoEvent);
if(stop != null)
send(stopsManager.createGeoEvent(stop, getId(), definition.getUri()));
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:17,
示例5: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent evt){
try {
int inwkid = (Integer) properties.get("wkidin").getValue();
int outwkid = (Integer) properties.get("wkidout").getValue();
//int bufferwkid = (Integer) properties.get("wkidbuffer").getValue();
srIn = SpatialReference.create(inwkid);
//srBuffer = SpatialReference.create(bufferwkid);
srOut = SpatialReference.create(outwkid);
String eventfld = properties.get("polyfld").getValue().toString();
String[] arr = eventfld.split(":");
String geostring = (String) evt.getField(arr[1]);
String format = properties.get("polyformat").getValue().toString();
com.esri.ges.spatial.Geometry geo = null;
if (format.equals("Json")) {
geo = constructJsonGeometry(geostring);
} else if (format.equals("CAP")) {
geo = constructCAPGeometry(geostring);
}
evt.setGeometry(geo);
return evt;
} catch (Exception ex) {
LOG.error(ex.getMessage());
LOG.error(ex.getStackTrace());
return null;
}
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:30,
示例6: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
String radiusSource = properties.get("radiusSource").getValue().toString();
double radius;
if(radiusSource.equals("Constant"))
{
radius = (Double)properties.get("radius").getValue();
}
else
{
String eventfld = properties.get("radiusEvent").getValue().toString();
String[] arr = eventfld.split(":");
radius = (Double)ge.getField(arr[1]);
}
String units = properties.get("units").getValue().toString();
int inwkid = (Integer) properties.get("wkidin").getValue();
int outwkid = (Integer) properties.get("wkidout").getValue();
int bufferwkid = (Integer) properties.get("wkidbuffer").getValue();
com.esri.ges.spatial.Point eventGeo = (com.esri.ges.spatial.Point) ge.getGeometry();
double x = eventGeo.getX();
double y = eventGeo.getY();
com.esri.ges.spatial.Geometry buffer = constructBuffer(x,y,radius,units,inwkid,bufferwkid,outwkid);
ge.setGeometry(buffer);
return ge;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:28,
示例7: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
if(!ge.getGeoEventDefinition().getTagNames().contains("GEOMETRY"))
{
return null;
}
inwkid = ge.getGeometry().getSpatialReference().getID();
if(majAxisSource.equals("Event"))
{
majorAxisRadius = (Double)ge.getField(majorAxisField);
}
if(minAxisSource.equals("Event"))
{
minorAxisRadius = (Double)ge.getField(minorAxisField);
}
if(rotSource.equals("Event"))
{
rotation=(Double)ge.getField(rotationField);
}
MapGeometry mapGeo = ge.getGeometry();
Geometry geo = mapGeo.getGeometry();
if(!(geo instanceof Point))
{
return null;
}
Point eventGeo = (Point)geo;
double x = eventGeo.getX();
double y = eventGeo.getY();
double rdeg = GeometryUtility.Geo2Arithmetic(rotation);
double r = Math.toRadians(rdeg);
MapGeometry ellipse = constructEllipse(x, y, majorAxisRadius, minorAxisRadius, r, inwkid, procwkid, outwkid);
ge.setGeometry(ellipse);
return ge;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:37,
示例8: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
LOG.info("VisibilityProcessor.process starts.................");
double radius;
if(!ge.getGeoEventDefinition().getTagNames().contains("GEOMETRY"))
{
return null;
}
srIn=ge.getGeometry().getSpatialReference();
if(isRadiusConstant)
{
radius = radiusConstant;
}
else
{
radius = (Double)ge.getField(radiusEventfld);
}
double elevation;
if(isElevConstant){
elevation =elevConstant;
}
else
{
elevation = (Double)ge.getField(elevEventfld);
}
LOG.info("Calling ConstructVisibilityRest.................");
GeoEvent outGeo = ConstructVisibilityRest(ge, gp, is, radius, radiusUnit, elevation, units_elev, procwkid);
LOG.info("VisibilityProcessor.process ends.................");
return outGeo;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:40,
示例9: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
public GeoEvent process(GeoEvent evt) throws Exception {
GeoEventDefinition ged = evt.getGeoEventDefinition();
FieldDefinition fd = ged.getFieldDefinition(aggregateFld);
if (fd == null)
return null;
FieldType type = fd.getType();
if (!typelist.contains(type)) {
return null;
}
Double val = null;
if (type == FieldType.Double) {
val = (Double) evt.getField(aggregateFld);
} else if (type == FieldType.Integer) {
val = ((Integer) evt.getField(aggregateFld)) * 1.0;
} else if (type == FieldType.Long) {
val = ((Long) evt.getField(aggregateFld)) * 1.0;
} else if (type == FieldType.Short) {
val = ((Short) evt.getField(aggregateFld)) * 1.0;
} else if (type == FieldType.Float) {
val = ((Float) evt.getField(aggregateFld)) * 1.0;
}
if(val == null)
{
return null;
}
timestamp = System.currentTimeMillis();
cache.put(timestamp, val);
return null;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:33,
示例10: convertGeoEventToStop
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
public void convertGeoEventToStop( GeoEvent message, Stop stop )
{
Set predefinedTags = stop.getPredefinedKeys();
for (FieldDefinition fd :message.getGeoEventDefinition().getFieldDefinitions())
{
String name = fd.getName();
Object value = message.getField(name);
String resrouceName = getResourceName(fd, predefinedTags);
if(value == null)
{
continue;
}
String valueToInsert;
switch(fd.getType())
{
case Boolean:
case Double:
case Integer:
case Long:
case Short:
case String:
case Geometry:
valueToInsert = value.toString();
break;
case Date:
valueToInsert = Long.toString( ((Date)value).getTime() );
break;
default:
valueToInsert = null;
break;
}
stop.setAttribute( resrouceName, valueToInsert );
}
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:37,
示例11: createVehicleFromGeoEvent
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
public Vehicle createVehicleFromGeoEvent(GeoEvent geoEvent)
{
DefaultVehicle vehicle = new DefaultVehicle();
vehicle.setCumulativeMinutes((Double) geoEvent.getField(VehicleResource.CUMULATIVE_MINUTES_KEY));
vehicle.setDeviceId((String) geoEvent.getField(VehicleResource.DEVICE_ID_KEY));
vehicle.setDeviceType((String) geoEvent.getField(VehicleResource.DEVICE_TYPE_KEY));
vehicle.setEventName((String) geoEvent.getField(VehicleResource.EVENT_NAME_KEY));
vehicle.setLastUpdated((Date) geoEvent.getField(VehicleResource.LAST_UPDATED_KEY));
Object vehicleLocationObject = geoEvent.getField(VehicleResource.GEOMETRY_KEY);
if (vehicleLocationObject != null)
{
Geometry vehicleLocation = geometryFromAttribute(vehicleLocationObject);
if (vehicleLocation != null && vehicleLocation instanceof Point)
{
vehicle.setLocation((Point) vehicleLocation);
}
}
vehicle.setNextStopSequenceNumber((Integer) geoEvent.getField(VehicleResource.NEXT_STOP_SEQUENCE_NUMBER_KEY));
vehicle.setPanic((String) geoEvent.getField(VehicleResource.PANIC_KEY));
vehicle.setSpeed((Double) geoEvent.getField(VehicleResource.SPEED_KEY));
vehicle.setVehicleGroupName((String) geoEvent.getField(VehicleResource.VEHICLE_GROUP_NAME_KEY));
vehicle.setVehicleName((String) geoEvent.getField(VehicleResource.VEHICLE_NAME_KEY));
vehicle.setFixedCost((Double) geoEvent.getField(VehicleResource.FIXED_COST_KEY));
vehicle.setFuelEconomy((Double) geoEvent.getField(VehicleResource.FUEL_ECONOMY_KEY));
vehicle.setFuelType((String) geoEvent.getField(VehicleResource.FUEL_TYPE_KEY));
vehicle.setCapacity((String) geoEvent.getField(VehicleResource.CAPACITY_KEY));
vehicle.setSpecialties((String) geoEvent.getField(VehicleResource.SPECIALTIES_KEY));
return vehicle;
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:30,
示例12: getPointFromField
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
private Point getPointFromField( GeoEvent geoEvent, String fieldName )
{
Object routePointObject = geoEvent.getField( fieldName );
if( routePointObject != null )
{
Geometry routeEndPoint = geometryFromAttribute( routePointObject );
if( routeEndPoint != null && routeEndPoint instanceof Point )
{
return (Point)routeEndPoint;
}
}
return null;
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:14,
示例13: resequence
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent resequence(GeoEvent geoEvent, String naConnection, String routeSolverPath)
{
Collection routes;
Plan plan = null;
boolean commit = false;
try
{
routes = convertGeoEventToCalculateParameters(geoEvent);
//commit = (Boolean)geoEvent.getField("commit");
// TODO: workaround. json adapter writes Boolean as string. As a result, the input which uses the same GED could not read Boolean fields.
// If commit is null, set it to true.
commit = true;
if(geoEvent.getField("commit") != null)
commit = (Boolean)geoEvent.getField("commit");
plan = calculate(routes, naConnection, routeSolverPath, commit);
}
catch (Exception e)
{
log.error(e);
return createPlanGeoEvent(null, false, PlanStatus.Failed, e.getMessage());
}
return createPlanGeoEvent(plan, commit, PlanStatus.Successful, "");
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:28,
示例14: processGeoEvent
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
protected GeoEvent processGeoEvent(GeoEvent geoEvent)
{
String stopName = (String)geoEvent.getField( StopResource.STOP_NAME_KEY );
Point point = getLocation(geoEvent);
if(point == null)
return null;
Aoi aoi = aoiManager.getAoi(stopsManager.getStopsAoiCategory(), stopName);
if(aoi != null)
{
Stop oldStop = stopsManager.getStopByName(stopName);
if(oldStop != null)
{
String newStatus = (String)geoEvent.getField(StopResource.STATUS_KEY);
if(newStatus != null)
if(newStatus.equals(StopStatus.AtStop.toString()) || newStatus.equals(StopStatus.Completed.toString())
|| newStatus.equals(StopStatus.Exception.toString()))
return null;
if((oldStop.getLocation().getX()==point.getX() && oldStop.getLocation().getY()==point.getY()))
return null;
stopsManager.convertGeoEventToStop(geoEvent, oldStop);
if(oldStop.getStatus()==StopStatus.Canceled)
return null;
}
else
{
Stop stop = stopsManager.createStop(stopName);
stopsManager.convertGeoEventToStop(geoEvent, stop);
if(stop.getStatus()==StopStatus.Canceled)
return null;
}
aoiManager.deleteAoi(stopsManager.getStopsAoiCategory(), stopName);
}
if(serviceAreaType.equals(ServiceAreaCalculatorDefinition.SERVICE_AREA_TYPE_BUFFER))
return createBufferForStop(bufferDistance, stopName, point);
else
return createAoiForStop(naConnectionName, path, driveTime, stopName, point);
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:40,
示例15: updateETAForAllStops
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
private void updateETAForAllStops(GeoEvent geoEvent) throws Exception
{
if (geoEventCreator == null && (geoEventCreator = messaging.createGeoEventCreator()) == null)
return;
String trackId = (String) geoEvent.getField("TRACK_ID");
List stops = getNextStops(trackId);
Stop stop = stops.get(0);
if (stop == null)
{
LOG.error( "Couldn't update ETA for track "+trackId+" because the next stop was not found." );
return;
}
calculateETAForNextStop(stop, geoEvent);
if(stop != null)
{
long diff = DateUtil.millisecondsBetween(stop.getProjectedArrival(), stop.getScheduledArrival());
for(int i=1; i
{
if(stops.get(i) != null)
{
if(stops.get(i).getScheduledArrival() != null)
stops.get(i).setProjectedArrival(new Date(stops.get(i).getScheduledArrival().getTime() + diff));
if(stops.get(i).getScheduledDeparture() != null)
stops.get(i).setProjectedDeparture(new Date(stops.get(i).getScheduledDeparture().getTime() + diff));
send(stopsManager.createGeoEvent(stops.get(i), getId(), definition.getUri()));
}
}
}
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:34,
示例16: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent geoEvent) throws Exception
{
GeoEvent newGeoEvent = null;
if(geoEvent.getField(REQUEST_ID_FIELD) == null )
{
log.error("Request ID is not available in the GeoEvent.");
return null;
}
String requestId = (String)geoEvent.getField(REQUEST_ID_FIELD);
if(!geoEvent.getGeoEventDefinition().getName().equals(planManager.getPlanCommandGeoEventDefinition().getName()))
return null;
if(geoEvent.getField(planManager.getPlanCommandActionField()).equals(planManager.getPlanCommandActionClear()))
newGeoEvent = planManager.clearPlan(geoEvent, agsConnectionName, path, featureService, stopLayer, routeLayer, vehicleLayer, geofenceLayer, alertLayer);
else if(geoEvent.getField(planManager.getPlanCommandActionField()).equals(planManager.getPlanCommandActionGet()))
newGeoEvent = planManager.getPlan();
else if(geoEvent.getField(planManager.getPlanCommandActionField()).equals(planManager.getPlanCommandActionReload()))
newGeoEvent = planManager.reloadPlan(agsConnectionName, path, featureService, stopLayer, routeLayer, vehicleLayer, alertLayer);
else if(geoEvent.getField(planManager.getPlanCommandActionField()).equals(planManager.getPlanCommandActionLoad()))
{
//planManager.clearPlan(geoEvent, agsConnectionName, path, featureService, stopLayer, routeLayer, vehicleLayer, geofenceLayer, alertLayer);
newGeoEvent = planManager.loadPlan(geoEvent);
}
if(newGeoEvent.getGeoEventDefinition().getFieldDefinition(REQUEST_ID_FIELD) != null)
newGeoEvent.setField(REQUEST_ID_FIELD, requestId);
return newGeoEvent;
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:31,
示例17: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent evt) throws Exception {
MapGeometry mapGeo = (MapGeometry) evt.getField(geofld);
Geometry geo = mapGeo.getGeometry();
int wkid = mapGeo.getSpatialReference().getID();
if(wkid != 4326)
{
return null;
}
if(geo.getType() != Geometry.Type.Point)
{
return null;
}
Point pt = (Point)geo;
double[] coords = {pt.getX(), pt.getY()};
PeGeogcs pegeocs = PeFactory.geogcs(4326);
String[] mgrsvals = new String[1];
PeNotationMgrs.geog_to_mgrs(pegeocs, 1, coords, accuracy, false, mgrsvals);
String mgrs = mgrsvals[0];
//LL ll = new LL(pt.getX(), pt.getY());
//ll.setAccuracy(accuracy);
//MGRS2LatLongConverter converter = new MGRS2LatLongConverter();
//String mgrs = converter.LL2MRGS(ll);
GeoEventDefinition edOut;
GeoEventDefinition geoDef = evt.getGeoEventDefinition();
if((edOut=manager.searchGeoEventDefinition(newdef, getId()))==null)
{
edOut = geoDef.augment(fds);
edOut.setOwner(getId());
edOut.setName(newdef);
manager.addGeoEventDefinition(edOut);
}
GeoEventCreator geoEventCreator = messaging.createGeoEventCreator();
GeoEvent geOut = geoEventCreator.create(edOut.getGuid(), new Object[] {
evt.getAllFields(), mgrs });
geOut.setProperty(GeoEventPropertyName.TYPE, "message");
geOut.setProperty(GeoEventPropertyName.OWNER_ID, getId());
geOut.setProperty(GeoEventPropertyName.OWNER_ID, definition.getUri());
return geOut;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:42,
示例18: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent geoEvent) throws Exception {
GeoEvent msg = null;
if (createDef) {
createGeoEventDefinition(geoEvent, keepFields);
createDef=false;
}
if (geoEvent.getTrackId() == null || geoEvent.getGeometry() == null) {
LOGGER.warn("NULL_ERROR");
return null;
}
if (trackIdles == null) {
LOGGER.warn("TRACK_IDLES_NULL");
return null;
}
try {
String cacheKey = buildCacheKey(geoEvent);
TrackIdleProcessorStart idleStart = trackIdles.get(cacheKey);
Date startTime = (Date)geoEvent.getField("TIME_START");
long currentStartTime = startTime.getTime();
if (idleStart != null && idleStart.getGeometry() != null) {
if (!hasGeometryMoved(geoEvent.getGeometry(),
idleStart.getGeometry(), tolerance)) {
double idleDuration = (currentStartTime - idleStart
.getStartTime().getTime()) / 1000.0;
idleDuration = idleDuration >= 0 ? idleDuration
: -idleDuration;
idleDuration = Math.round(idleDuration * 10.0) / 10.0;
if (idleDuration >= idleLimit) {
idleStart.setIdleDuration(idleDuration);
if (notificationMode == TrackIdleProcessorNotificationMode.Continuous)
msg = createTrackIdleGeoEvent(idleStart, true,
geoEvent, ged);
else if (!idleStart.isIdling())
msg = createTrackIdleGeoEvent(idleStart, true,
geoEvent, ged);
idleStart.setIdling(true);
}
}
else
{
if (idleStart.isIdling())
{
msg = createTrackIdleGeoEvent(idleStart, false, geoEvent, ged);
}
idleStart.setGeometry(geoEvent.getGeometry());
idleStart.setStartTime(geoEvent.getStartTime());
idleStart.setIdling(false);
}
} else {
trackIdles.put(
cacheKey,
new TrackIdleProcessorStart(geoEvent.getTrackId(), startTime, geoEvent.getGeometry()));
}
} catch (Exception error) {
LOGGER.error(error.getMessage(), error);
}
return msg;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:65,
示例19: processGeoEvent
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
private GeoEvent processGeoEvent(GeoEvent geoEvent)
throws GeoEventDefinitionManagerException {
GeoEvent geoevent = null;
if (createDef) {
createGeoEventDefinition(geoEvent, keepFields);
createDef=false;
}
if (geoEvent.getTrackId() == null || geoEvent.getGeometry() == null) {
LOGGER.warn("NULL_ERROR");
return null;
}
if (trackIdles == null) {
LOGGER.warn("TRACK_IDLES_NULL");
return null;
}
try {
String cacheKey = buildCacheKey(geoEvent);
TrackIdleProcessorStart idleStart = trackIdles.get(cacheKey);
Date startTime = (Date)geoEvent.getField("TIME_START");
long currentStartTime = startTime.getTime();
if (idleStart != null && idleStart.getGeometry() != null) {
if (!hasGeometryMoved(geoEvent.getGeometry(),
idleStart.getGeometry(), tolerance)) {
double idleDuration = (currentStartTime - idleStart
.getStartTime().getTime()) / 1000.0;
idleDuration = idleDuration >= 0 ? idleDuration
: -idleDuration;
idleDuration = Math.round(idleDuration * 10.0) / 10.0;
if (idleDuration >= idleLimit) {
idleStart.setIdleDuration(idleDuration);
if (notificationMode == TrackIdleProcessorNotificationMode.Continuous)
geoevent = createTrackIdleGeoEvent(idleStart, true,
geoEvent, ged);
else if (!idleStart.isIdling())
geoevent = createTrackIdleGeoEvent(idleStart, true,
geoEvent, ged);
idleStart.setIdling(true);
}
}
else
{
if (idleStart.isIdling())
{
geoevent = createTrackIdleGeoEvent(idleStart, false, geoEvent, ged);
}
idleStart.setGeometry(geoEvent.getGeometry());
idleStart.setStartTime(geoEvent.getStartTime());
idleStart.setIdling(false);
}
} else {
trackIdles.put(
cacheKey,
new TrackIdleProcessorStart(geoEvent.getTrackId(), startTime, geoEvent.getGeometry()));
}
} catch (Exception error) {
LOGGER.error(error.getMessage(), error);
}
return geoevent;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:65,
示例20: CreateQueries
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
public ArrayList CreateQueries(GeoEvent ge) throws Exception {
Set eventTokens = eventTokenMap.keySet();
Iterator eventIt = eventTokens.iterator();
while (eventIt.hasNext()) {
String et = eventIt.next();
String fn = eventTokenMap.get(et);
String val = null;
if (ge.getField(fn) != null) {
val = ge.getField(fn).toString();
wc = wc.replace(et, val);
}
}
ArrayList queries = new ArrayList();
URL url = conn.getUrl();
String protocol = url.getProtocol();
String host = url.getHost();
Integer port = url.getPort();
String path = url.getPath();
String baseUrl = null;
String curPath=null;
if (endpoint != null)
{
curPath = endpoint;
}
else
{
baseUrl = protocol + "://" + host +":" + port.toString() + path + "rest/services";
curPath = baseUrl + "/" + folder + "/" + service+ "/FeatureServer/" + layerId;
}
//String baseUrl = url.getProtocol() + "://" + url.getHost() + ":"
//+ url.getPort() + url.getPath() + "rest/services/";
if(connectionType == ConnectionType.AGOL)
{
//String agolUrl = DefaultAGOLConnection.ARCGIS_Dot_Com_URL;
//token = agolconn.getToken();
}
String restpath = curPath + "/query?";
HashMap query = new HashMap();
HashMap fieldMap = new HashMap();
String fldsString = field;
String[] fieldArray = fldsString.split(",");
for (String f : fieldArray) {
String tk = tokenizer.tokenize(f);
fieldMap.put(f, tk);
}
query.put("restpath", restpath);
query.put("path", curPath);
query.put("whereclause", wc);
query.put("fields", fldsString);
query.put("tokenMap", fieldMap);
query.put("usingdist", calcDist);
query.put("layer", layer.getName());
UUID uid = UUID.randomUUID();
query.put("id", uid);
queries.add(query);
return queries;
}
開發者ID:Esri,項目名稱:defense-solutions-proofs-of-concept,代碼行數:62,
示例21: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent geoEvent) throws Exception
{
Date eventTime = (Date) geoEvent.getField("TIME_START");
String trackId = (String) geoEvent.getField("TRACK_ID");
Stop stop = getNextStop(trackId);
if (stop == null)
{
log.error( "Couldn't update ETA for track "+trackId+" because the next stop was not found." );
return null;
}
String incidentCacheKey = buildIncidentCacheKey(geoEvent);
if( incidentCacheKey != null )
{
// String guid = incidentIDMapper.get( incidentCacheKey );
String guid = autoArrivalDepartureManager.getIncidentId(incidentCacheKey);
Incident incident = null;
StopIncidentConditions conditions = stopConditions.get( stop.getName() );
if( guid != null && autoArrivalDepartureManager.hasIncident( guid ) )
{
autoArrivalDepartureManager.updateIncident( guid, geoEvent );
incident = autoArrivalDepartureManager.getIncidentById(guid);
}
else
{
if( conditions == null )
{
conditions = createOpenSpatialConditionForStop( stop );
stopConditions.put( stop.getName(), conditions );
}
if( conditions.open.evaluate( geoEvent ) )
{
incident = autoArrivalDepartureManager.openIncident( "Arrive-Depart for Stop "+stop.getName(),
IncidentType.Cumulative, AlertType.Notification,
com.esri.ges.core.incident.GeometryType.Point, conditions.open,
conditions.close, geoEvent.getGeoEventDefinition().getOwner(), definition.getUri(), 3600, geoEvent, incidentCacheKey);
// incidentIDMapper.put( incidentCacheKey, incident.getId() );
if(stop.getStatus()==StopStatus.Dispatched || stop.getStatus()==StopStatus.Assigned)
{
stop.setActualArrival( eventTime );
stop.setStatus( StopStatus.AtStop );
}
}
}
if (incident != null)
{
if( conditions.close.evaluate(geoEvent) || stop.getStatus()==StopStatus.Completed || stop.getStatus()==StopStatus.Exception)
{
// incidentIDMapper.remove( incidentCacheKey );
// incidentManager.closeIncident( guid, geoEvent );
autoArrivalDepartureManager.closeIncident(incidentCacheKey, geoEvent);
stopConditions.remove(stop.getName());
Vehicle vehicle = vehiclesManager.getVehicleByName( stop.getRouteName() );
vehicle.setNextStopSequenceNumber( stop.getSequenceNumber()+1 );
if(stop.getStatus()==StopStatus.AtStop)
{
stop.setActualDeparture( eventTime );
stop.setActualServiceDuration( (int)DateUtil.minutesBetween( stop.getActualArrival(), eventTime ) );
stop.setStatus( StopStatus.Completed );
}
}
}
}
stop.setLastUpdated(eventTime);
cacheGeoEventWithVehichleResource( geoEvent, trackId );
return createGeoEvent(stop);
}
開發者ID:Esri,項目名稱:route-monitor-for-geoevent,代碼行數:72,
示例22: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
try {
if(!ge.getGeoEventDefinition().getTagNames().contains("GEOMETRY"))
{
return null;
}
srIn=ge.getGeometry().getSpatialReference();
inwkid = srIn.getID();
double range;
if (rangeSource.equals("Constant")) {
range = rangeConstant;
} else {
range = (Double) ge.getField(rangeEventFld);
}
double bearing;
if (bearingSource.equals("Constant")) {
bearing = bearingConstant;
} else {
bearing = (Double) ge.getField(bearingEventFld);
}
double traversal;
if (traversalSource.equals("Constant")) {
traversal = traversalConstant;
} else {
traversal = (Double) ge.getField(traversalEventFld);
}
Point originGeo = null;
if (geosrc.equals("event")) {
MapGeometry mapGeo = ge.getGeometry();
originGeo = (Point) mapGeo.getGeometry();
}
if (geosrc.equals("geodef")) {
originGeo = (Point) ge.getField(geometryEventFld);
}
if (geosrc.equals("coord")) {
Double ox = (Double) ge.getField(xfield);
Double oy = (Double) ge.getField(yfield);
originGeo = new Point(ox, oy, inwkid);
}
double x = originGeo.getX();
double y = originGeo.getY();
Geometry fan = constructRangeFan(x, y, range, rangeUnits, bearing,
traversal);
Geometry fanout = GeometryEngine.project(fan, srBuffer, srOut);
MapGeometry outMapGeo = new MapGeometry(fanout, srOut);
ge.setGeometry(outMapGeo);
return ge;
} catch (Exception e) {
LOG.error(e.getMessage());
throw e;
}
}
開發者ID:Esri,項目名稱:solutions-geoevent-java,代碼行數:60,
示例23: process
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
public GeoEvent process(GeoEvent ge) throws Exception {
if (createDef) {
createGeoEventDefinition(ge);
createDef=false;
}
Date timeStart = (Date)ge.getField("TIME_START");
Date timeEnd = (Date)ge.getField("TIME_END");
if(timeStart== null)
return null;
if(timeEnd==null)
return null;
MapGeometry mapGeo = ge.getGeometry();
Geometry geo = mapGeo.getGeometry();
if(geo.getType()!=Geometry.Type.Polyline)
return null;
Polyline polyln = (Polyline)geo;
Geometry outGeo = null;
Date ts = null;
if(pointType.equals("start"))
{
ts = (Date)ge.getField("TIME_START");
outGeo = getStartPoint(polyln);
}
else if(pointType.equals("end"))
{
ts = (Date)ge.getField("TIME_END");
outGeo = getEndPoint(polyln);
}
else if(pointType.equals("mid"))
{
outGeo = getMiddlePoint(mapGeo);
long midTime = timeStart.getTime() + ((timeEnd.getTime() - timeStart.getTime())/2);
ts = new Date(midTime);
}
MapGeometry outMapGeo = new MapGeometry(outGeo, mapGeo.getSpatialReference());
GeoEvent msg = createLine2PtGeoevent(ge, outMapGeo, ts);
return msg;
}
開發者ID:Esri,項目名稱:solutions-geoevent-java,代碼行數:44,
示例24: mutateStackForCalculation
點讚 2
import com.esri.ges.core.geoevent.GeoEvent; //導入方法依賴的package包/類
@Override
void mutateStackForCalculation(Stack stack, GeoEvent geoEvent)
{
Object value = null;
Field field = geoEvent.getField((FieldExpression)this.value);
if (field != null)
{
FieldDefinition fd = field.getDefinition();
value = field.getValue();
if (fd != null)
{
switch (fd.getType())
{
case Group:
break;
case Boolean:
if (value == null)
value = Boolean.FALSE;
break;
case Date:
if (value == null)
{
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(0);
value = calendar.getTimeInMillis();
}
else
value = ((Date)value).getTime();
break;
case Geometry:
break;
case String:
if (value == null)
value = "";
break;
case Short:
if (value == null)
value = (short)0;
break;
case Integer:
if (value == null)
value = 0;
break;
case Long:
if (value == null)
value = 0l;
break;
case Float:
if (field.getValue() == null)
value = 0f;
break;
case Double:
if (value == null)
value = 0d;
break;
}
}
}
stack.push(value);
}
開發者ID:Esri,項目名稱:solutions-geoevent-java,代碼行數:61,
注:本文中的com.esri.ges.core.geoevent.GeoEvent.getField方法示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。
文章浏览阅读3.4k次,点赞8次,收藏42次。一、什么是内部类?or 内部类的概念内部类是定义在另一个类中的类;下面类TestB是类TestA的内部类。即内部类对象引用了实例化该内部对象的外围类对象。public class TestA{ class TestB {}}二、 为什么需要内部类?or 内部类有什么作用?1、 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。2、内部类可以对同一个包中的其他类隐藏起来。3、 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。三、 内部类的分类成员内部_成员内部类和局部内部类的区别
文章浏览阅读118次。分布式系统要求拆分分布式思想的实质搭配要求分布式系统要求按照某些特定的规则将项目进行拆分。如果将一个项目的所有模板功能都写到一起,当某个模块出现问题时将直接导致整个服务器出现问题。拆分按照业务拆分为不同的服务器,有效的降低系统架构的耦合性在业务拆分的基础上可按照代码层级进行拆分(view、controller、service、pojo)分布式思想的实质分布式思想的实质是为了系统的..._分布式系统运维工具
文章浏览阅读174次。1.数据源准备2.数据处理step1:数据表处理应用函数:①VLOOKUP函数; ② CONCATENATE函数终表:step2:数据透视表统计分析(1) 透视表汇总不同渠道用户数, 金额(2)透视表汇总不同日期购买用户数,金额(3)透视表汇总不同用户购买订单数,金额step3:讲第二步结果可视化, 比如, 柱形图(1)不同渠道用户数, 金额(2)不同日期..._exce l趋势分析数据量
文章浏览阅读3.3k次。堡垒机可以为企业实现服务器、网络设备、数据库、安全设备等的集中管控和安全可靠运行,帮助IT运维人员提高工作效率。通俗来说,就是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。由于堡垒机内部保存着企业所有的设备资产和权限关系,是企业内部信息安全的重要一环。但目前出现的以下问题产生了很大安全隐患:密码设置过于简单,容易被暴力破解;为方便记忆,设置统一的密码,一旦单点被破,极易引发全面危机。在单一的静态密码验证机制下,登录密码是堡垒机安全的唯一_horizon宁盾双因素配置
文章浏览阅读7.7k次,点赞4次,收藏16次。Chrome作为一款挺不错的浏览器,其有着诸多的优良特性,并且支持跨平台。其支持(Windows、Linux、Mac OS X、BSD、Android),在绝大多数情况下,其的安装都很简单,但有时会由于网络原因,无法安装,所以在这里总结下Chrome的安装。Windows下的安装:在线安装:离线安装:Linux下的安装:在线安装:离线安装:..._chrome linux debian离线安装依赖
文章浏览阅读153次。中国发达城市榜单每天都在刷新,但无非是北上广轮流坐庄。北京拥有最顶尖的文化资源,上海是“摩登”的国际化大都市,广州是活力四射的千年商都。GDP和发展潜力是衡量城市的数字指...
文章浏览阅读3.3k次。前言spark在java使用比较少,多是scala的用法,我这里介绍一下我在项目中使用的代码配置详细算法的使用请点击我主页列表查看版本jar版本说明spark3.0.1scala2.12这个版本注意和spark版本对应,只是为了引jar包springboot版本2.3.2.RELEASEmaven<!-- spark --> <dependency> <gro_使用java调用spark注册进去的程序
文章浏览阅读4.8k次。汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用,代码精简高效,大厂出品有量产保证。:139800617636213023darcy169_uds协议栈 源代码
文章浏览阅读4.6k次,点赞20次,收藏148次。AUTOSAR基础篇之OS(下)前言首先,请问大家几个小小的问题,你清楚:你知道多核OS在什么场景下使用吗?多核系统OS又是如何协同启动或者关闭的呢?AUTOSAR OS存在哪些功能安全等方面的要求呢?多核OS之间的启动关闭与单核相比又存在哪些异同呢?。。。。。。今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JCXrdI0k-1636287756923)(https://gite_autosar 定义了 5 种多核支持类型
文章浏览阅读2.2k次,点赞6次,收藏14次。原因:自己写的头文件没有被加入到方案的包含目录中去,无法被检索到,也就无法打开。将自己写的头文件都放入header files。然后在VS界面上,右键方案名,点击属性。将自己头文件夹的目录添加进去。_vs2013打不开自己定义的头文件
文章浏览阅读3.3w次,点赞80次,收藏342次。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍历数目。_redis命令
文章浏览阅读449次,点赞3次,收藏3次。URP的设计目标是在保持高性能的同时,提供更多的渲染功能和自定义选项。与普通项目相比,会多出Presets文件夹,里面包含着一些设置,包括本色,声音,法线,贴图等设置。全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,主光源和附加光源在一次Pass中可以一起着色。URP:全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,一次Pass可以计算多个光源。可编程渲染管线:渲染策略是可以供程序员定制的,可以定制的有:光照计算和光源,深度测试,摄像机光照烘焙,后期处理策略等等。_urp渲染管线