java geoprocessor_Java GeoEvent.getField方法代碼示例-程序员宅基地

技术标签: 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;未經允許,請勿轉載。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39934085/article/details/114790819

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签