This sections represents the reference about the iso4app engine
offered by the Iso4App JavaScript and Rest API. We discuss all the mandatory and optional parameters and the constants you can use during invocation.
Version 1.3 adds the parameters below:
- concavity
parameter, specifying this parameter you can have less or more points on the resulting polygon, from a convex polygon to a detailed concave polygon.
- bicycleOnPredestrian
parameter, specifying this parameter bicycles can go on pedestrian areas.
- buffering
parameter, specifying how to buffer the resulting polygon.
- restrctedAreas
parameter, specifying if want to include restricted access areas.
- pedestrianAnbBikeOnTrunk
parameter, specifying if want to include trunk ways for pedestrian and bicycle.
- fastestRouting
parameter, specifying, for isodistances/motor vehicle, if want to use fastest routing instead all routing.
For javascript API the signature of getIsoline
method has been changed.
To get the iso4app Engine simply include the script:
<!-- Iso4App library -->
<script src="http://www.iso4app.net/api/js?v=1.3&lkey=YOUR_API_KEY"></script>
and declare the engine variable:
<script;>
var engine = new iso4app.Engine();
</script>
In order to use iso4app API you have to specify an API Key (YOUR_API_KEY).
After the registration in the iso4app web site we send you a key with a limited number of credits; you can use it for development purposes.
iso4app.Engine class
Constructor |
Description |
Engine(toolbarDiv?:Node) |
Create a new Engine object.
If toolbarDiv is specified iso4app creates the toolbar inside the given HTML container, which is typically a DIV element |
Property |
Type |
Description |
version |
String |
API version |
Method |
Returned value |
Description |
getIsoline(lat:Number,
lng:Number,
type:Distance|Time,
props?:object
|
Isoline |
lat,lng your point coordinate (input point)
type if you need an Isodistance specify a Distance. If you need an Isochrone specify a Time. See iso4app.Distance and iso4app.Time classes.
props
javascript object of properties.
Properties list:
maxdist
maximum value (in meters) of approximation used in the identification of the nearest point of your input point. Default: "100"
mobility
travel type. See iso4app.Mobility class for the allowed values. Default: iso4app.Mobility.MOTOR_VEHICLE
speedtype
speed type. See iso4app.Speed class for the allowed values. Default: iso4app.Speed.NORMAL. You can use it for isochrones.
speedlimit
maximum speed you can reach. You can use it for isochrones.
reducequeuetime
specify "1" if you want iso4app considers less time waiting in lines. Default: "0". You can use it for isochrones.
avoidtollways
specify "1" if you want iso4app does not considers toll roads. Default: "0"
restrictedareas
specify "1" if you want iso4app considers ways probabily with some access restriction, for example (but not limited to): Limited Traffic Zone, Private Residential Areas, Service Areas. Usually these restrictions are valid, but not always, for mothor vehicle
fastestrouting
specify "1" if you want iso4app considers the fastest routing instead all routing. You can use it for isodistances/motor vehicle.
concavity
Concavity of the resulting polygon. See iso4app.Concavity class for the allowed values. Default: iso4app.Concavity.LEVEL_5
buffering
Buffer of the resulting polygon. See iso4app.Buffering class for the allowed values. Default: iso4app.Buffering.LEVEL_0
pedestrianandbikeontrunk
specify "1" if you want iso4app considers trunk roads for pedestrian and for bicycles. Default: "0"
bicycleonpedestrian
specify "1" if you want iso4app considers pedestrian areas for bicycles. Default: "0"
Example of props object:
= {
maxdist : "",
mobility : "",
speedtype : "",
maxvehiclespeed : "",
reducequeue : "",
avoidtollways : "",
concavity : "",
pedestrianandbikeontrunk : "",
restrictedareas : ""
}
props.maxdist = "100";
props.mobility = iso4app.Mobility.MOTOR_VEHICLE;
props.speedtype = iso4app.Speed.NORMAL;
props.maxvehiclespeed = 50;
props.reducequeue = "0";
props.avoidtollways = "1";
props.restrictedareas = "1";
props.concavity = iso4app.Concavity.LEVEL_7;
props.buffering = iso4app.Buffering.LEVEL_4;
var isoline = iso.getIsoline("43.334098","-1.7920697",iso4app.Time.SECONDS_300,props);
|
iso4app.Isoline class
Isoline object returned from the engine getIsoline
method.
Input Point: the point you specify (lat,lng) when you invoke the method getIsoline()
Start Point: when you give iso4app an Input Point it looks for the nearest point having an isoline associated to it. If the "as the crow flies" distance between "input point" and "start point" exceeds the maxApprox values, iso4app returns an error.
Property |
Type |
Description |
errcode |
String |
If iso4app is not able to calculate the requested isoline in this property you will find the error code |
errmsg |
String |
If iso4app is not able to calculate the requested isoline in this property you will find the error message |
exectime |
String |
Execution time |
isocoords |
String |
Isoline coordinates. The coordinates are comma separated |
inputpoint |
String |
Input point coordinate |
startpoint |
String |
Start point coordinate |
type |
String |
Isoline type |
approx |
Number |
Distance in meters between input and start point |
oneway |
Bool |
Indicate if start point resides in a oneway street |
tollway |
Bool |
Indicate if start point resides in a tollway |
way |
String |
The name of the road of the start point. This information is not always provided. In case of road intersections, only one name is returned and not all the names of the streets that intersect. |
iso4app.Distance class
Constants used to indicate distance values.
Constant |
Description |
METERS_100 | 100 meters |
METERS_150 | 150 meters |
METERS_200 | 200 meters |
METERS_250 | 250 meters |
METERS_300 | 300 meters |
METERS_350 | 350 meters |
METERS_400 | 400 meters |
METERS_450 | 450 meters |
METERS_500 | 500 meters |
METERS_750 | 750 meters |
METERS_1000 | 1000 meters |
METERS_1500 | 1500 meters |
METERS_2000 | 2.000 meters |
METERS_2500 | 2.500 meters |
METERS_3000 | 3.000 meters |
METERS_3500 | 3.500 meters |
METERS_4000 | 4.000 meters |
METERS_4500 | 4.500 meters |
METERS_5000 | 5.000 meters |
METERS_6000 | 6.000 meters |
METERS_7000 | 7.000 meters |
METERS_8000 | 8.000 meters |
METERS_9000 | 9.000 meters |
METERS_10000 | 10.000 meters |
METERS_12000 | 12.000 meters |
METERS_14000 | 14.000 meters |
METERS_16000 | 16.000 meters |
METERS_18000 | 18.000 meters |
METERS_20000 | 20.000 meters |
METERS_25000 | 25.000 meters |
METERS_30000 | 30.000 meters |
METERS_35000 | 35.000 meters |
METERS_40000 | 40.000 meters |
METERS_50000 | 50.000 meters |
METERS_60000 | 60.000 meters |
METERS_70000 | 70.000 meters |
METERS_80000 | 80.000 meters |
METERS_90000 | 90.000 meters |
METERS_100000 | 100.000 meters |
METERS_120000 | 120.000 meters |
METERS_140000 | 140.000 meters |
METERS_160000 | 160.000 meters |
METERS_180000 | 180.000 meters |
METERS_200000 | 200.000 meters |
METERS_250000 | 250.000 meters |
METERS_300000 | 300.000 meters |
METERS_350000 | 350.000 meters |
METERS_400000 | 400.000 meters |
METERS_450000 | 450.000 meters |
METERS_500000 | 500.000 meters |
If you need to use other values, for example 2857 meters you can use directly the string "2857m".
iso4app.Time class
Constants used to indicate time values.
Constant |
Description |
SECONDS_60 | 60 seconds |
SECONDS_120 | 120 seconds |
SECONDS_180 | 180 seconds |
SECONDS_240 | 240 seconds |
SECONDS_300 | 300 seconds |
SECONDS_360 | 360 seconds |
SECONDS_420 | 420 seconds |
SECONDS_480 | 480 seconds |
SECONDS_540 | 540 seconds |
SECONDS_600 | 600 seconds |
SECONDS_660 | 660 seconds |
SECONDS_720 | 720 seconds |
SECONDS_780 | 780 seconds |
SECONDS_840 | 840 seconds |
SECONDS_900 | 900 seconds |
SECONDS_960 | 960 seconds |
SECONDS_1020 | 1.020 seconds |
SECONDS_1080 | 1.080 seconds |
SECONDS_1140 | 1.140 seconds |
SECONDS_1200 | 1.200 seconds |
SECONDS_1500 | 1.500 seconds |
SECONDS_1800 | 1.800 seconds |
SECONDS_2100 | 2.100 seconds |
SECONDS_2400 | 2.400 seconds |
SECONDS_2700 | 2.700 seconds |
SECONDS_3000 | 3.000 seconds |
SECONDS_3300 | 3.300 seconds |
SECONDS_3600 | 3.600 seconds |
SECONDS_4200 | 4.200 seconds |
SECONDS_4800 | 4.800 seconds |
SECONDS_5400 | 5.400 seconds |
SECONDS_6000 | 6.000 seconds |
SECONDS_6600 | 6.600 seconds |
SECONDS_7200 | 7.200 seconds |
SECONDS_8400 | 8.400 seconds |
SECONDS_9600 | 9.600 seconds |
SECONDS_10800 | 10.800 seconds |
SECONDS_12000 | 12.000 seconds |
SECONDS_13200 | 13.200 seconds |
SECONDS_14400 | 14.400 seconds |
SECONDS_15600 | 15.600 seconds |
SECONDS_16800 | 16.800 seconds |
SECONDS_18000 | 18.000 seconds |
If you need to use other values, for example 1354 seconds you can use directly the string "1354s".
iso4app.Mobility class
Constants used to indicate travel type values.
Constant |
Description |
MOTOR_VEHICLE | Motor veichle (car, motorbike, truck,...) |
BICYCLE | Bicycle or Electric Bicycle. To simulate an E-Bike set the Speed type to Fast and fill the Speed limit with the speed of your E-Bike (not more than 40) |
PEDESTRIAN | Walking or Running. To simulate a Runner set the Speed type to Fast and fill the Speed limit with the speed of the runner (not more than 20) |
iso4app.Speed class
Constants used to indicate speed type values.
Constant |
Description |
VERY_LOW | Driving very slowly or heavy traffic |
LOW | Driving slowly or medium traffic |
NORMAL | Driving normally or slow traffic |
FAST | No traffic. For Motor veichle you travel at the road speed limit. For Bicyle and Pedestrian we suggest to use this value together with Speed limt parameter |
iso4app.Concavity class
Constants used to indicate the concavity of the resulting polygon.
Constant |
Description |
LEVEL_0 | the resulting polygon is convex |
LEVEL_1 | concavity at level 1 |
LEVEL_2 | concavity at level 2 |
LEVEL_3 | concavity at level 3 |
LEVEL_4 | concavity at level 4 |
LEVEL_5 | concavity at level 5 |
LEVEL_6 | concavity at level 6 |
LEVEL_7 | concavity at level 7 |
LEVEL_8 | concavity at level 8 |
Higher value you set, more polygon points you get.
iso4app.Buffering class
Constants used to indicate how to buffer the resulting polygon.
Constant |
Description |
LEVEL_0 | no buffering |
LEVEL_1 | buffer around 10 meters |
LEVEL_2 | buffer around 20 meters |
LEVEL_3 | buffer around 30 meters |
LEVEL_4 | buffer around 40 meters |
LEVEL_5 | buffer around 50 meters |
LEVEL_6 | buffer around 60 meters |
LEVEL_7 | buffer around 70 meters |
LEVEL_8 | buffer around 80 meters |
Higher value you set, more buffer size you get. The value in meters are indicative only and may vary depending on the resulting polygon.
A request to the Iso4app API includes the basic elements shown in the following table.
Element |
Value |
Description |
Base URL |
http://www.iso4app.net |
Production environment |
Path |
/rest/1.3 |
The two digits of the service version ensure that backward incompatible changes force a change in the URL. The old version is maintained for a defined period of time. |
Resource |
isoline |
Support only GET. Specify request details via query parameters |
Format |
Supported formats:
|
|
API Key |
&licKey={YOUR_API_KEY} |
Substitute your own unique api key |
In addition you have to specify the parameters below.
Parameter |
Description |
Data type |
Admitted values |
type |
Isoline type |
String |
isochrone|isodistance |
value |
Isoline value |
Integer |
Number of seconds for the isochrone. Number of meters for the isodistance |
lat |
Latitude of the input point |
Double |
|
lng |
Longitude of the input point |
Double |
|
mobility |
Travel type |
String |
motor_vehicle|bicycle|pedestrian |
approx |
Approximation used in the identification of the nearest point of your input point |
Integer |
Number of meters Optional Default is 100 |
speedType |
Speed type |
String |
very_low|low|normal|fast Optional Default is normal Used only if type=isochrone |
reduceQueue |
Specify true if you want iso4app consider less time waiting in lines |
Boolean |
true|false Optional Default is false Used only if type=isochrone |
avoidTolls |
Specify true if you want iso4app does not consider toll roads |
Boolean |
true|false Optional Default is false |
restrictedAreas |
Specify false if you do not want iso4app considers ways probabily with some access restriction, for example (but not limited to): Limited Traffic Zone, Private Residential Areas, Service Areas. Usually these restrictions are valid, but not always, for mothor vehicle |
Boolean |
true|false Optional Default is true |
fastestRouting |
Specify true if you want iso4app considers the fastest routing instead all routing. You can use it for isodistances/motor vehicle. |
Boolean |
true|false Optional Default is false Used only if type=isodistance |
pedestrianAnbBikeOnTrunk |
Specify true if you want iso4app considers trunk ways also for pedestrian and bicycle |
Boolean |
true|false Optional Default is false |
speedLimit |
Maximum speed you can reach |
Double |
Expressed in km/h Optional Used only if type=isochrone |
concavity |
Concavity of the resulting polygon |
Integer |
between 0 and 8 Optional Default value is 5. The value 0 means convex polygon. Higher value you set, more polygon points you get. |
buffering |
Apply a buffer to the original polygon |
Integer |
between 0 and 8 Optional Default value is 0. The value 0 means no buffering. Higher value you set, more polygon buffering you get. |
bicycleOnPedestrian |
specify true if you want iso4app consider pedestrian areas for bicycles |
Boolean |
true|false Optional Default is false |
reqId |
Your custom identifier for this request |
String |
Optional Default is 0 |
Below a sample call for an Isodistance.
http://www.iso4app.net/rest/1.3/isoline.geojson?licKey=87B7FB96-83DA-4FBD-A312-7822B96BB143
&type=isodistance
&value=10000
&lat=43.334098
&lng=-1.7920697
&approx=1000
&mobility=motor_vehicle
&speedType=normal
&reduceQueue=false
&avoidTolls=true
&restrictedAreas=false
&fastestRouting=true
&concavity=6
&buffering=3
&reqId=A57X
XML Response
See isoline.xsd schema.
The API returns a top-level "isoline" element as the answer to a isoline resource.
Within the root tag you'll find:
<type> |
Isoline type |
<value> |
Isoline value |
<execTime> |
Execution time |
<reqId> |
Request id you have passed in input |
<polygons> |
Collection of <polygon> object that identify the isoline.
Every <polygon> has an <exterior> and sometimes an <interior> part
The <exterior> tag always has a single <ring>
The <interior> tag can be expressed via one or more <ring> See note [*] |
<inputPoint> |
required point |
<startPoint> |
point from which iso4app started to calculate the isoline
The start point indicates the used approximation (<approx>) and some informations about the way (<oneWay>,<tollWay>,<way>)
|
See isoline.xml sample.
JSON Response
In the json format the returned object corresponds to the isoline object.
The information are the same presented in the xml format.
In json format the polygons collection contains a variable number of polygon object; every polygon object has its exterior and interior property (see note [*]).
Every ring is represented as an array element.
See isoline.json sample.
GEOJSON Response
The geojson isoline is expressed as a FeatureCollection.
There are three features: input point, start point and isoline.
The geometry object of the first two properties is a Point while the geometry for the isoline representation is a Multipolygon geometry object (see note [*]).
The properties are the same properties discussed in the XML RESPONSE section.
See isoline.geojson sample.
[*] Iso4app will provide more than one polygon and the interior ring only in the future, when public transport isochrones will be available.
HTTP Status Codes
Iso4app rest API supports the standard HTTP status codes.
Error code |
Description |
200 OK |
Indicate success |
400 Bad request |
Invalid parameter value in the request |
403 Forbidden |
User not authorized |
404 Not found |
Iso4app is unable to calculate the requested isoline or parameters have invalid data type. See response message for detail |
503 Service unavailable |
The service is temporarily unavailable due to system overload or maintenance |
Poi clustering gives you a way to group your POI on clusters based on their distance or time from a starting point.
Poi clustering limitation: free Api-key is limited to 20 poi. Paid Api-key is limited to 200 poi.
A request to the Iso4app API includes the basic elements shown in the following table.
Element |
Value |
Description |
Base URL |
http://www.iso4app.net |
Production environment |
Path |
/rest/1.3 |
The two digits of the service version ensure that backward incompatible changes force a change in the URL. The old version is maintained for a defined period of time. |
Resource |
poiClustering |
Support only GET. Specify request details via query parameters |
Format |
Supported formats:
|
|
API Key |
&licKey={YOUR_API_KEY} |
Substitute your own unique api key |
In addition you have to specify the parameters below.
Parameter |
Description |
Data type |
Admitted values |
type |
Isoline type |
String |
isochrone|isodistance |
values |
Isoline values comma separated |
String |
list of seconds comma separated for the isochrone. (60,120,240,...) list of meters comma separated for the isodistance ( 600,1200,1800,...)
|
poiList |
list of poi comma separated |
String |
poi fields: id lat lng where id as your poi identifier, lat is the latitude and lng is the longitute Example of poiList:1 42.4410680 19.2471670,2 42.4384160 19.2473170,3 42.4389610 19.2656800
|
lat |
Latitude of the input point |
Double |
|
lng |
Longitude of the input point |
Double |
|
mobility |
Travel type |
String |
motor_vehicle|bicycle|pedestrian |
approx |
Approximation used in the identification of the nearest point of your input point |
Integer |
Number of meters Optional Default is 100 |
speedType |
Speed type |
String |
very_low|low|normal|fast Optional Default is normal Used only if type=isochrone |
reduceQueue |
Specify true if you want iso4app consider less time waiting in lines |
Boolean |
true|false Optional Default is false Used only if type=isochrone |
avoidTolls |
Specify true if you want iso4app does not consider toll roads |
Boolean |
true|false Optional Default is false |
restrictedAreas |
Specify false if you do not want iso4app considers ways probabily with some access restriction, for example (but not limited to): Limited Traffic Zone, Private Residential Areas, Service Areas. Usually these restrictions are valid, but not always, for mothor vehicle |
Boolean |
true|false Optional Default is true |
fastestRouting |
Specify true if you want iso4app considers the fastest routing instead all routing. You can use it for isodistances/motor vehicle. |
Boolean |
true|false Optional Default is false Used only if type=isodistance |
speedLimit |
Maximum speed you can reach |
Double |
Expressed in km/h Optional Used only if type=isochrone |
concavity |
Concavity of the resulting polygon |
Integer |
between 0 and 8 Optional Default value is 5. The value 0 means convex polygon. Higher value you set, more polygon points you get. |
buffering |
Apply a buffer to the original polygon |
Integer |
between 0 and 8 Optional Default value is 0. The value 0 means no buffering. Higher value you set, more polygon buffering you get. |
bicycleOnPedestrian |
specify true if you want iso4app consider pedestrian areas for bicycles |
Boolean |
true|false Optional Default is false |
reqId |
Your custom identifier for this request |
String |
Optional Default is 0 |
Below a sample call for a Poi Clustering.
http://www.iso4app.net/rest/1.3/poiClustering.json?licKey={YOUR_API_KEY}
&type=isochrone
&values=120,300,480
&poiList=1 42.4410680 19.2471670,2 42.4384160 19.2473170,3 42.4389610 19.2656800,4 42.4402750 19.2649500,5 42.434247 19.279333
&lat=42.4386290
&lng=19.2516300
&approx=1000
&mobility=motor_vehicle
&speedType=normal
&reduceQueue=false
&avoidTolls=true
&speedLimit=30
&concavity=6
&buffering=3
&reqId=A57X
XML Response
See poicluster.xsd schema.
The API returns a top-level "poiCluster" element as the answer to a poiClustering resource.
See poicluster.xml sample.
JSON Response
In the json format the returned object corresponds to the poiClustering object.
The information are the same presented in the xml format.
See poicluster.json sample.
GEOJSON Response
The geojson is expressed as a FeatureCollection.
There are five features: input point, start point, one or more cluster and one or more poi.
See poicluster.geojson sample.
To get the iso4app Engine simply include the script:
<!-- Iso4App library -->
<script src="http://www.iso4app.net/api/js?v=1.2&lkey=YOUR_API_KEY"></script>
and declare the engine variable:
<script;>
var engine = new iso4app.Engine();
</script>
In order to use iso4app API you have to specify an API Key (YOUR_API_KEY).
After the registration in the iso4app web site we send you a key with a limited number of credits; you can use it for development purposes.
iso4app.Engine class
Constructor |
Description |
Engine(toolbarDiv?:Node) |
Create a new Engine object.
If toolbarDiv is specified iso4app creates the toolbar inside the given HTML container, which is typically a DIV element |
Property |
Type |
Description |
version |
String |
API version |
Method |
Returned value |
Description |
getIsoline(lat:Number,
lng:Number,
type:Distance|Time,
maxApprox?:Number,
mobility?:Mobility,
speedType?:Speed,
speedLimit?:Number,
reduceQueueTime?:1|0,
avoidTolls?:1|0)
|
Isoline |
lat,lng your point coordinate (input point)
type if you need an Isodistance specify a Distance. If you need an Isochrone specify a Time. See iso4app.Distance and iso4app.Time classes.
maxApprox
maximum value (in meters) of approximation used in the identification of the nearest point of your input point. Default: "100"
mobility
travel type. See iso4app.Mobility class for the allowed values. Default: iso4app.Mobility.MOTOR_VEHICLE
speedType
speed type. See iso4app.Speed class for the allowed values. Default: iso4app.Speed.NORMAL
speedLimit
maximum speed you can reach
reduceQueueTime
specify "1" if you want iso4app consider less time waiting in lines. Default: "0"
avoidTolls
specify "1" if you want iso4app does not consider toll roads. Default: "0"
|
If you prefer you can use the iso4app toolbar in your GUI.
Using iso4app toolbar is simple, you have to create a DIV element and obtain a reference to this
element in the browser's DOM. When you create the iso4app Engine you'll pass the DIV reference to the constructor.
In this case when you'll invoke the method getIsoline() you have to provide only latitude
and longitude of your point; iso4app will read the other parameters directly from the toolbar.
iso4app.Isoline class
Isoline object returned from the engine getIsoline
method.
Input Point: the point you specify (lat,lng) when you invoke the method getIsoline()
Start Point: when you give iso4app an Input Point it looks for the nearest point having an isoline associated to it. If the "as the crow flies" distance between "input point" and "start point" exceeds the maxApprox values, iso4app returns an error.
Property |
Type |
Description |
errcode |
String |
If iso4app is not able to calculate the requested isoline in this property you will find the error code |
errmsg |
String |
If iso4app is not able to calculate the requested isoline in this property you will find the error message |
exectime |
String |
Execution time |
isocoords |
String |
Isoline coordinates. The coordinates are comma separated |
inputpoint |
String |
Input point coordinate |
startpoint |
String |
Start point coordinate |
type |
String |
Isoline type |
approx |
Number |
Distance in meters between input and start point |
oneway |
Bool |
Indicate if start point resides in a oneway street |
tollway |
Bool |
Indicate if start point resides in a tollway |
way |
String |
The name of the road of the start point. This information is not always provided. In case of road intersections, only one name is returned and not all the names of the streets that intersect. |
iso4app.Distance class
Constants used to indicate distance values.
Constant |
Description |
METERS_500 | 500 meters |
METERS_750 | 750 meters |
METERS_1000 | 1000 meters |
METERS_1500 | 1500 meters |
METERS_2000 | 2.000 meters |
METERS_2500 | 2.500 meters |
METERS_3000 | 3.000 meters |
METERS_3500 | 3.500 meters |
METERS_4000 | 4.000 meters |
METERS_4500 | 4.500 meters |
METERS_5000 | 5.000 meters |
METERS_6000 | 6.000 meters |
METERS_7000 | 7.000 meters |
METERS_8000 | 8.000 meters |
METERS_9000 | 9.000 meters |
METERS_10000 | 10.000 meters |
METERS_12000 | 12.000 meters |
METERS_14000 | 14.000 meters |
METERS_16000 | 16.000 meters |
METERS_18000 | 18.000 meters |
METERS_20000 | 20.000 meters |
METERS_25000 | 25.000 meters |
METERS_30000 | 30.000 meters |
METERS_35000 | 35.000 meters |
METERS_40000 | 40.000 meters |
METERS_50000 | 50.000 meters |
METERS_60000 | 60.000 meters |
METERS_70000 | 70.000 meters |
METERS_80000 | 80.000 meters |
METERS_90000 | 90.000 meters |
METERS_100000 | 100.000 meters |
METERS_120000 | 120.000 meters |
METERS_140000 | 140.000 meters |
METERS_160000 | 160.000 meters |
METERS_180000 | 180.000 meters |
METERS_200000 | 200.000 meters |
METERS_250000 | 250.000 meters |
METERS_300000 | 300.000 meters |
METERS_350000 | 350.000 meters |
METERS_400000 | 400.000 meters |
METERS_450000 | 450.000 meters |
METERS_500000 | 500.000 meters |
If you need to use other values, for example 2857 meters you can use directly the string "2857m".
iso4app.Time class
Constants used to indicate time values.
Constant |
Description |
SECONDS_60 | 60 seconds |
SECONDS_120 | 120 seconds |
SECONDS_180 | 180 seconds |
SECONDS_240 | 240 seconds |
SECONDS_300 | 300 seconds |
SECONDS_360 | 360 seconds |
SECONDS_420 | 420 seconds |
SECONDS_480 | 480 seconds |
SECONDS_540 | 540 seconds |
SECONDS_600 | 600 seconds |
SECONDS_660 | 660 seconds |
SECONDS_720 | 720 seconds |
SECONDS_780 | 780 seconds |
SECONDS_840 | 840 seconds |
SECONDS_900 | 900 seconds |
SECONDS_960 | 960 seconds |
SECONDS_1020 | 1.020 seconds |
SECONDS_1080 | 1.080 seconds |
SECONDS_1140 | 1.140 seconds |
SECONDS_1200 | 1.200 seconds |
SECONDS_1500 | 1.500 seconds |
SECONDS_1800 | 1.800 seconds |
SECONDS_2100 | 2.100 seconds |
SECONDS_2400 | 2.400 seconds |
SECONDS_2700 | 2.700 seconds |
SECONDS_3000 | 3.000 seconds |
SECONDS_3300 | 3.300 seconds |
SECONDS_3600 | 3.600 seconds |
SECONDS_4200 | 4.200 seconds |
SECONDS_4800 | 4.800 seconds |
SECONDS_5400 | 5.400 seconds |
SECONDS_6000 | 6.000 seconds |
SECONDS_6600 | 6.600 seconds |
SECONDS_7200 | 7.200 seconds |
SECONDS_8400 | 8.400 seconds |
SECONDS_9600 | 9.600 seconds |
SECONDS_10800 | 10.800 seconds |
SECONDS_12000 | 12.000 seconds |
SECONDS_13200 | 13.200 seconds |
SECONDS_14400 | 14.400 seconds |
SECONDS_15600 | 15.600 seconds |
SECONDS_16800 | 16.800 seconds |
SECONDS_18000 | 18.000 seconds |
If you need to use other values, for example 1354 seconds you can use directly the string "1354s".
iso4app.Mobility class
Constants used to indicate travel type values.
Constant |
Description |
MOTOR_VEHICLE | Motor veichle (car, motorbike, truck,...) |
BICYCLE | Bicycle or Electric Bicycle. To simulate an E-Bike set the Speed type to Fast and fill the Speed limit with the speed of your E-Bike (not more than 40) |
PEDESTRIAN | Walking or Running. To simulate a Runner set the Speed type to Fast and fill the Speed limit with the speed of the runner (not more than 20) |
iso4app.Speed class
Constants used to indicate speed type values.
Constant |
Description |
VERY_LOW | Driving very slowly or heavy traffic |
LOW | Driving slowly or medium traffic |
NORMAL | Driving normally or slow traffic |
FAST | No traffic. For Motor veichle you travel at the road speed limit. For Bicyle and Pedestrian we suggest to use this value together with Speed limt parameter |
A request to the Iso4app API includes the basic elements shown in the following table.
Element |
Value |
Description |
Base URL |
http://www.iso4app.net |
Production environment |
Path |
/rest/1.2 |
The two digits of the service version ensure that backward incompatible changes force a change in the URL. The old version is maintained for a defined period of time. |
Resource |
isoline |
Support only GET. Specify request details via query parameters |
Format |
Supported formats:
|
|
API Key |
&licKey={YOUR_API_KEY} |
Substitute your own unique api key |
In addition you have to specify the parameters below.
Parameter |
Description |
Data type |
Admitted values |
type |
Isoline type |
String |
isochrone|isodistance |
value |
Isoline value |
Integer |
Number of seconds for the isochrone. Number of meters for the isodistance |
lat |
Latitude of the input point |
Double |
|
lng |
Longitude of the input point |
Double |
|
mobility |
Travel type |
String |
motor_vehicle|bicycle|pedestrian |
approx |
Approximation used in the identification of the nearest point of your input point |
Integer |
Number of meters Optional Default is 100 |
speedType |
Speed type |
String |
very_low|low|normal|fast Optional Default is normal Used only if type=isochrone |
reduceQueue |
Specify true if you want iso4app consider less time waiting in lines |
Boolean |
true|false Optional Default is false Used only if type=isochrone |
avoidTolls |
Specify true if you want iso4app does not consider toll roads |
Boolean |
true|false Optional Default is false |
speedLimit |
Maximum speed you can reach |
Double |
Expressed in km/h Optional Used only if type=isochrone |
reqId |
Your custom identifier for this request |
String |
Optional Default is 0 |
Below a sample call for an Isodistance.
http://www.iso4app.net/rest/1.2/isoline.geojson?licKey=87B7FB96-83DA-4FBD-A312-7822B96BB143
&type=isodistance
&value=10000
&lat=43.334098
&lng=-1.7920697
&approx=1000
&mobility=motor_vehicle
&speedType=normal
&reduceQueue=false
&avoidTolls=true
&speedLimit=30
&reqId=A57X
XML Response
See isoline.xsd schema.
The API returns a top-level "isoline" element as the answer to a isoline resource.
Within the root tag you'll find:
<type> |
Isoline type |
<value> |
Isoline value |
<execTime> |
Execution time |
<reqId> |
Request id you have passed in input |
<polygons> |
Collection of <polygon> object that identify the isoline.
Every <polygon> has an <exterior> and sometimes an <interior> part
The <exterior> tag always has a single <ring>
The <interior> tag can be expressed via one or more <ring> See note [*] |
<inputPoint> |
required point |
<startPoint> |
point from which iso4app started to calculate the isoline
The start point indicates the used approximation (<approximation>) and some informations about the way (<oneWay>,<tollWay>,<way>)
|
See isoline.xml sample.
JSON Response
In the json format the returned object corresponds to the isoline object.
The information are the same presented in the xml format.
In json format the polygons collection contains a variable number of polygon object; every polygon object has its exterior and interior property (see note [*]).
Every ring is represented as an array element.
See isoline.json sample.
GEOJSON Response
The geojson isoline is expressed as a FeatureCollection.
There are three features: input point, start point and isoline.
The geometry object of the first two properties is a Point while the geometry for the isoline representation is a Multipolygon geometry object (see note [*]).
The properties are the same properties discussed in the XML RESPONSE section.
See isoline.geojson sample.
[*] Iso4app will provide more than one polygon and the interior ring only in the future, when public transport isochrones will be available.
HTTP Status Codes
Iso4app rest API supports the standard HTTP status codes.
Error code |
Description |
200 OK |
Indicate success |
400 Bad request |
Invalid parameter value in the request |
403 Forbidden |
User not authorized |
404 Not found |
Iso4app is unable to calculate the requested isoline or parameters have invalid data type. See response message for detail |
503 Service unavailable |
The service is temporarily unavailable due to system overload or maintenance |
The Iso4App API is currenlty available in the countries presented in the table below.
Please contact us at
if you need another one.
Albania |
Andorra |
Australia Oceania |
Austria |
Belarus |
Belgium |
Belize |
Bosnia Herzegovina |
Bulgaria |
Canada |
Canary Islands |
Costa Rica |
Croatia |
Cuba |
Czech Republic |
Denmark |
Dominican Republic |
El salvador |
Emirates |
Estonia |
Falkland Islands, |
Finland |
France |
French Guiana |
Germany |
Great Britain |
Greece |
Guatemala |
Guyana |
Honduras |
Hungary |
Ireland and Northern Ireland |
Italy |
Jamaica |
Kosovo |
Kuwait |
Latvia |
Liechtenstein |
Lithuania |
Luxembourg |
Macedonia |
Mexico |
Moldova |
Monaco |
Montenegro |
Netherlands |
Nicaragua |
Oman |
Panama |
Poland |
Quatar |
Russia |
Saudi Arabia |
Serbia |
Slovakia |
Slovenia |
South Africa |
Spain |
Sweden |
Switzerland |
Ukraine |
USA |
Venezuela |
|
Freemium (no registration)
If you use the demo API Key 87B7FB96-83DA-4FBD-A312-7822B96BB143 you can ask for 10km isodistances and 10 minutes isochrones. This API Key is used in the demo page, and you can use it for development purposes.
Freemium (registration required)
After registration we give you a personal API Key by which you can ask for every type of isolines; you can use it in the demo page or for development purposes.
This API key is limited in credits and time.
Premium (registration required)
You can extend your API Key purchasing new credits.
Credits cost per isoline type:
Isodistance |
Isochrone |
Cost |
Response Time(*) |
Up to 10 km |
Up to 10 mins |
1 credit |
- |
> 10 km <= 25 km |
> 10 mins <= 20 mins |
2 credits |
- |
> 25 km <= 50 km |
> 20 mins <= 40 mins |
4 credits |
- |
> 50 km <= 100 km |
> 40 mins <= 1 hr |
6 credits |
- |
> 100 km <= 200 km |
> 1 hr <= 2 hrs |
10 credits |
- |
> 200 km <= 300 km |
> 2 hrs <= 3 hrs |
16 credits |
- |
> 300 km <= 400 km |
> 3 hrs <= 4 hrs |
24 credits |
- |
> 400 km |
> 4 hrs |
32 credits |
- |
Thematic map credit usage:
- ISOCHRONE AND ISODISTANCES with OSM category: isoline credits are multiplied by 4.
- ISODISTANCES with ISTAT or MEF category: isoline credits + 10 credits + 4 credits every 500 meters.
- ISOCHRONES MOTOR VEHICLE with ISTAT or MEF category: isoline credits + 10 credits + 4 credits every minute.
- ISOCHRONES BICYCLE with ISTAT or MEF category: isoline credits + 10 credits + 3 credits every minute.
- ISOCHRONES PEDESTRIAN with ISTAT or MEF category: isoline credits + 10 credits + 2 credits every minute.
On our Online App when the parameters panel is opened a credits calculator will be showed.
(*) The response time depends on the number of ways to analyze. You can have a response less then 1 second as well as greather than 1 minute
Available license:
Monthly Plan
- Basic plan start from 2000 credits at fixed cost.
- After 2000 credits you pay according to consumption.
- You can choose the monthly limit.
Please ask for quotation!
.
Pay as you go
- Start from 2000 credits.
- You can recharge it at any time.
- After the expiration your API-Key will be stopped, however the ramaining credits will be valid and usable after a recharge.
- Payment in advance.
Options and prices available after registration!
|
Desktop |
Mobile |
Chrome |
1 |
Yes |
Firefox |
1.0 |
Yes |
Internet Explorer |
9 |
Yes |
Opera |
8 |
Yes |
Safari |
3.2 |
Yes |