pgwelch / com.opendoorlogistics Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://www.opendoorlogistics.com
License: GNU Lesser General Public License v3.0
Home Page: http://www.opendoorlogistics.com
License: GNU Lesser General Public License v3.0
Hi Phil,
I tried a simple 1 customer delivery problem. The vehicle start time that we mention in the vehicle types are being considered as the actual start time of the vehicle. It is not being able to consider start time as the earliest start time. Is that an issue? I have build the jsprit integration project as a clean build and using the same. Attaching the gantt chart of the trip. You can see that the vehicle is starting at the start time and waiting at the customer unnecessarily.
@PGWelch It would be great if you add What's new update like in jsprit.
which content history
Currently, it still needs the command line code "java -jar ....". With Apple's jar-bundler it should be no problem to bundle ODL-jar and make it a Mac App. However, the jar bundler does not come with OS X Maverics anymore (and not with the developer xcode tools anymore)
Currently pointing towards a file on the build machine....
I tried downloading this but its not building in latest Eclipse. Could you update this repo if it hasn't been already with latest code?
That would be highly appreciated 😃
Create a new table. Show it in the map. Map is read-only. Have to close and reopen the spreadsheet to get a writtable map.
Changing an option in the jsprit.odlx file to have 'special' characters - e.g. Näytä kartta (Show map in Finnish), results in the .odlx file not being loadable. The error "Invalid byte 2 of 3-byte UTF-8 sequence
" is thrown when loading the XML file (an odlx file is XML). See here http://stackoverflow.com/questions/2421272/invalid-byte-2-of-2-byte-utf-8-sequence
A workaround may be explicitly setting a different character encoding (e.g. not UTF-8) at the start of the .odlx XML file (to test).
We should be able to use a parameter instead
First of all, great project !
So, I was following This Tutorial and it works fine if you select the UK map, but if you select the US (United States) and try to Optimise the route with the "ROAD_NETWORK" option selected on settings, I'm getting the following error:
java.lang.RuntimeException: Invalid or empty Graphhopper directory: C:\Demo\Graphhopper
at com.opendoorlogistics.core.distances.DistancesSingleton.initGraphhopperGraph(DistancesSingleton.java:201)
at com.opendoorlogistics.core.distances.DistancesSingleton.calculateGraphhopper(DistancesSingleton.java:119)
at com.opendoorlogistics.core.distances.DistancesSingleton.calculate(DistancesSingleton.java:598)
at com.opendoorlogistics.core.scripts.execution.dependencyinjection.AbstractDependencyInjector.calculateDistances(AbstractDependencyInjector.java:91)
at com.opendoorlogistics.core.scripts.execution.ScriptExecutor$1.calculateDistances(ScriptExecutor.java:838)
at com.opendoorlogistics.components.jsprit.VRPBuilder$VehicleRoutingTransportCostsImpl.(VRPBuilder.java:190)
at com.opendoorlogistics.components.jsprit.VRPBuilder.buildProblem(VRPBuilder.java:732)
at com.opendoorlogistics.components.jsprit.VRPBuilder.build(VRPBuilder.java:742)
at com.opendoorlogistics.components.jsprit.VRPComponent.runOptimiser(VRPComponent.java:503)
at com.opendoorlogistics.components.jsprit.VRPComponent.execute(VRPComponent.java:273)
at com.opendoorlogistics.core.scripts.execution.ScriptExecutor.executeSingleInstruction(ScriptExecutor.java:910)
at com.opendoorlogistics.core.scripts.execution.ScriptExecutor.executeBatchedInstruction(ScriptExecutor.java:724)
at com.opendoorlogistics.core.scripts.execution.ScriptExecutor.executeAllInstructions(ScriptExecutor.java:355)
at com.opendoorlogistics.core.scripts.execution.ScriptExecutor.execute(ScriptExecutor.java:249)
at com.opendoorlogistics.studio.scripts.execution.ScriptExecutionTask.executeNonEDTAfterInitialisation(ScriptExecutionTask.java:150)
at com.opendoorlogistics.studio.scripts.execution.DatastoreModifierTask.executeNonEDT(DatastoreModifierTask.java:89)
at com.opendoorlogistics.studio.scripts.execution.ScriptsRunner$2.doInBackground(ScriptsRunner.java:368)
at com.opendoorlogistics.studio.scripts.execution.ScriptsRunner$2.doInBackground(ScriptsRunner.java:1)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Component com.opendoorlogistics.components.jsprit threw an exception.
Could not complete operation "vehicle routing (jsprit).odlx".
Execution of the operation failed.
Causing jsprit reports to come out empty,
This is a pretty wonderful tool!
I was trying to model a pickup and delivery problem. But it looks like the vehicles don't take multiple trips. After it completes one drop, it doesn't try to find the next trip.
Is there a way to model this?
I am not a Java programmer, but I do use ODL Studio to support our scout troop with our annual mulch delivery sale - it has been a real help in delivering 7,000 to 10,000 bags of mulch. The sale was postponed in 2021 due to COVID. Since then I have updated my Java installation on my Mac to:
java 17.0.2 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)
When I try to run the jar file for v1.4.1, I get errors associated with the program not being able to find the JAXB library. If I understand correctly, this library was moved out of JAVA SE to JAVA EE and is therefore no longer visible. A sample of the dump below:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.opendoorlogistics.studio.scripts.list.ScriptsTree.setFiles(ScriptsTree.java:326)
at com.opendoorlogistics.studio.scripts.list.ScriptsTree.(ScriptsTree.java:221)
at com.opendoorlogistics.studio.scripts.list.ScriptsPanel.(ScriptsPanel.java:149)
at com.opendoorlogistics.studio.appframe.AppFrame.(AppFrame.java:214)
at com.opendoorlogistics.studio.appframe.AppFrame.(AppFrame.java:179)
at com.opendoorlogistics.studio.appframe.AppFrame.main(AppFrame.java:123)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
at com.opendoorlogistics.core.scripts.io.ScriptIO.(ScriptIO.java:73)
at com.opendoorlogistics.core.scripts.io.ScriptIO.(ScriptIO.java:78)
at com.opendoorlogistics.core.scripts.io.ScriptIO.(ScriptIO.java:50)
... 6 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
at com.opendoorlogistics.core.scripts.io.ScriptIO.(ScriptIO.java:70)
... 8 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 9 more
I suppose I need to revert back to JAVA SE 10 for now if that is possible. However, this seems like something that should be updated in ODL Studio. I don't really have the chops to do this!
Its available in the latest jsprit engine...
Philip, I had something happen on a Linux install of ODL where the Vehicle Routing type disappeared. If I try to load a vehicle routing script it says "The format of this script is incorrect and it cannot be loaded". It's no longer listed in the Create Script menu, either. I'm guessing that something got corrupted related to that script type.
I tried deleting the entire ODL folder and unzipping it from a fresh download, and uninstalling and reinstalling Java (I'm using openjdk-8). This is on Ubuntu 20.04 LTS. These scripts still work fine from another computer running Windows, so it's not an issue with the scripts themselves.
Is there somewhere that a configuration or cache for either ODL or Java is being stored that I could purge to fix this issue?
Graphhopper has different settings which control its memory usage. Using ODL Studio with a very large road network graph (2GB+) gives an out-of-memory exception even on a 64 bit machine. We need to expose the different graphhopper memory settings through ODL Studio so we can set it to use less memory (e.g. the mobile configuration) for larger road network files.
Hi! @PGWelch I was looking to for vehicle profile set according the area wise to build a graph and set vehicle profile.
How to do init flow?
I am trying to generate report from Studio by setting custom image in place of OSM Map of report
I have written below code in 'SubReportsWithProviderBuilder.java'
BufferedImage img = ImageIO.read(new URL(staticMapString));
ds.getTableAt(1).setValueAt(img,0,4); // table(1) is Routes table and 4th column is Image
But the image is not getting updated and when I run ds.getTableAt(1).setValueAt(img,0,4) as evaluate expression, the result is undefined
When the plugins subdirectory does not exist a warning is shown but this warning does not detail the expected path.
May also need to be able to have CH turned off for this...
e.g. for a field stopid and a script parameter "stop-id", the filter "stopid" = sp("stop-id") is failing.
Hello ,
can i ask if you have or any plan to have a tool to generate distance matrix file from google maps direct?
-for example provide a google map key to odl and it generate required distance matrix
-or just export list of lat and lng its required to fill distance matrix so developers fill it automatically using api
-or can you tell me the optimal way to extract distance matrix points so i can fill the distance and time for them ?
is it distance between each vehicle and each points ? and distance between all points each others ?
Hi everyone!
Please help me to solve this issue: when I work with many days duration routes, I don't set "end-time" (or "start-time") in VehicleTypes and get error message (for example):
"Invalid time window record in table VehicleTypes on row 3, either start time or end time is empty but not both.
Component com.opendoorlogistics.components.jsprit threw an exception.
Could not complete operation "myexample.odlx".
Execution of the operation failed."
But when I clear "end-time" and "start-time", the system works and outputs results on the assumption of "start-time" is 0:00.
Previously thanks for explanation, how use ODL Studio for long distance routes (more then one day).
Regards,
Alex.
If you deal with a heterogenous fleet as described here: https://github.com/jsprit/jsprit/wiki/Heterogeneous-Fleet and you activate the fixed costs option like this:
https://github.com/jsprit/jsprit/blob/master/jsprit-examples/input/algorithmConfig_considerFixedCosts.xml
fixed costs will be considered when inserting a customer (as described following the link above). Otherwise, fixed costs are not considered during insertion. However, they are considered in the objective function thus solutions tend to have less vehicles.
Upgrade to the latest version of jsprit so we can remove the method com.opendoorlogistics.components.jsprit.VRPComponent.filterInvalidJobs and instead use the unassigned jobs list. This method previously filtered bad jobs before running jsprit.
Hello , can i use opendoorlogistics for the following case ?
Hi, I'm facing this error "Error connecting to Nominatim webservice" when try to do the geocode process!
Any solution for this ?
Thanks!
Relative file directory not working correctly for postcode geocoding.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.