Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I am trying to do some detailed mapping in QlikView and I'm wondering if its possible to get a distance or travel radius from a central point? If so, can some one provide in depth details on how I would go about doing that? Again, this is in QlikView not Sense. Thanks in advance!
Patric,
We were able to resolve the issue. We removed all modules from the Qlik GeoAnalytics Server Administration Console. Once everything was removed, we re-added them as stated in the install document. Whenever we were going through the process of checking all of the check boxes, we noticed that the module “route2” was failing to load due to insufficient memory (with the JVM set to 8GB). Previously, before we removed all of the modules, this module loaded fine and we never saw any issues regarding loading it. So we upped the JVM to 12GB, cycled the service and then the module loaded properly. After completing this the routing was working as intended.
I do have an additional question for you related to this issue. How does the GeoAnalytics Server handle RAM, especially related to the routing calculations? If one reload puts the RAM at 90% then another reload is conducted, does it clear the current data stored in memory in order to handle the new reload? We are trying to plan for the appropriate amount of RAM in order to avoid this issue in the future.
Hi Mark,
There are examples for all connector operations here, including routes and travelareas:
Connector and Guides & Examples
The examples are made with Qlik Sense but the essential part, the load script code will work in QlikView too. Just copy over.
We will also soon be posting more connector tutorials here, especially for QV, stay tuned.
Thanks,
Patric
Thanks Patric!
When trying to load the script below I receive the error
"QVX_UNKNOWN_ERROR: Could not connect to route module: Server returned HTTP response code: 400 for URL: http://localhost/ravegeo/route2/travelAreas?format=xml"
Can you tell me what I may be doing wrong here?
[TravelAreas]:
SQL SELECT
[Facility Name], [DriveTimes_TravelArea], [DriveTimes_Origin], [DriveTimes_Cost], [DriveTimes_CostUnit], [DriveTimes_Status] FROM TravelAreas (costValue='10', costField='', costUnit='Miles', transportation='car', dataset='DriveTimes')
DATASOURCE DriveTimes INLINE tableName='Facilities', tableFields='[Facility Name],[Facility Latitude],[Facility Longitude]', geometryType='POINTLATLON', loadDistinct='YES', suffix='', crs='Auto' {[Facility Name] [Facility Latitude] [Facility Longitude]
Facility1 80.22224 -99.33339
Facility2 80.22225 -96.33338
/* Generated by GeoAnalytics for operation TravelAreas ---------------------- */
[Facilities_Distinct_Temp]:
LOAD distinct [Facility Name] AS tmpField_0, [Facility Latitude] AS tmpField_1, [Facility Longitude] AS tmpField_2 resident Facilities;
Let [DriveTimesInlineTable] = '[Facility Name]' & Chr(9) & '[Facility Latitude]' & Chr(9) & '[Facility Longitude]';
Let numRows = NoOfRows('Facilities_Distinct_Temp');
Let chunkSize = 1000;
Let chunks = numRows/chunkSize;
For n = 0 to chunks
Let chunkText = '';
Let chunk = n*chunkSize;
For i = 0 To chunkSize-1
Let row = '';
Let rowNr = chunk+i;
Exit for when rowNr >= numRows;
For Each f In 'tmpField_0', 'tmpField_1', 'tmpField_2'
row = row & Chr(9) & Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'Facilities_Distinct_Temp'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');
Next
chunkText = chunkText & Chr(10) & Mid('$(row)', 2);
Next
[DriveTimesInlineTable] = [DriveTimesInlineTable] & chunkText;
Next
chunkText=''
DROP tables [Facilities_Distinct_Temp];
[TravelAreas]:
SQL SELECT
[Facility Name], [DriveTimes_TravelArea], [DriveTimes_Origin], [DriveTimes_Cost], [DriveTimes_CostUnit], [DriveTimes_Status] FROM TravelAreas (costValue='10', costField='', costUnit='Miles', transportation='car', dataset='DriveTimes')
DATASOURCE DriveTimes INLINE tableName='Facilities', tableFields='[Facility Name],[Facility Latitude],[Facility Longitude]', geometryType='POINTLATLON', loadDistinct='YES', suffix='', crs='Auto' {$(DriveTimesInlineTable)}
;
[DriveTimesInlineTable] = '';
/* End GeoAnalytics operation TravelAreas ----------------------------------- */
Hi,
I'm guessing that the QGA server is running on another port than 80.
If so the GaRouteService.xml must be edited, this is documented in the datapackage manual.
a. Locate GaRouteService.xml found in <Data Package folder>\OSMRouteXXXX.
b. Edit the file and update the moduleUrl to include the port selected during installation above, i.e. moduleUrl=http://localhost:8080/ravegeo/route2/.
For more details, have look at :
Qlik GeoAnalytics Enterprise Server Installation Guide
Thanks,
Patric
We are using the default ports for the server, specifically 443. We also have QGA and QV on separate servers. Would the xml file still need to be modified when using 443?
I tried to run this script again and I noticed the error changed to
"QVX_UNKNOWN_ERROR: Could not connect to route module: Connection refused: connect"
Hi,
Is there any odd entries in the server log?
C:\ProgramData\Qlik GeoAnalytics Server\server3\logs\main.log
The route module connects internally via http, port 80, is that port open?
Any security settings on the server that blocks connection to localhost from the server?
Do you have the the default port for http, 80?
Thanks,
Patric
Patric,
We were able to resolve the issue. We removed all modules from the Qlik GeoAnalytics Server Administration Console. Once everything was removed, we re-added them as stated in the install document. Whenever we were going through the process of checking all of the check boxes, we noticed that the module “route2” was failing to load due to insufficient memory (with the JVM set to 8GB). Previously, before we removed all of the modules, this module loaded fine and we never saw any issues regarding loading it. So we upped the JVM to 12GB, cycled the service and then the module loaded properly. After completing this the routing was working as intended.
I do have an additional question for you related to this issue. How does the GeoAnalytics Server handle RAM, especially related to the routing calculations? If one reload puts the RAM at 90% then another reload is conducted, does it clear the current data stored in memory in order to handle the new reload? We are trying to plan for the appropriate amount of RAM in order to avoid this issue in the future.
Hi Mark,
The memory requirements depend on what data package you will use with the server. For the normal map data package 2GB is enough. While with the enterprise data package you should set it to at least 10GB (preferably 16GB)
as the GeoAnalytics operations and especially the route database requires a lot of memory. (from the server install manual)
At server startup the whole route graph is loaded into memory hence the peak in memory usage, after that it won't consume a lot more of memory, the graph data is reused at sequential calls. I would recommend 16 GB, that should cover all basic setups.
Thanks,
Patric