Données relatives aux à l'occupation des parkings publics
La Régie Parcs d'Azur (RPA), gère des parkings au sein de la Ville de Nice. Les données relatives aux parkings sont disponibles dans l'entrepôt de données de la Métropole Nice Côte d'Azur. Le modèle de données OffStreetParking est destiné aux données liées au stationnement des véhicules dans des parkings multi emplacements et matérialisés par une ou plusieurs « entrées et sorties ». Pour plus d'information sur Nice parking : http://niceazurparking.fr/
Liste des capteurs
| ID | Name | Adresse | Localisation | Date de mise en service | Propriétés | Assets |
|---|---|---|---|---|---|---|
| Device:JALDYN-OFFSTPKG-OBJ001 | Parking Massena | 18 Avenue Félix Faure 06000 Nice | 7.26985643 43.69770086 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ002 | Parking Corvesy | 3 Rue Alexandre Mari 06000 Nice | 7.27213 43.69654415 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ003 | Parking Saleya | Cours Saleya 06000 Nice | 7.27374683 43.69573495 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ004 | Parking Palais de Justice | Place du Palais de Justice 06000 Nice | 7.27402474 43.69631646 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ005 | Parking Les Arts | 18 Avenue Saint-Jean-Baptiste 06000 Nice | 7.27810532 43.70087911 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ006 | Parking Palais Massena | 29 Prom. des Anglais 06000 Nice | 7.25996345 43.69519501 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ007 | Parking Mozart | 11 Avenue Auber 06000 Nice | 7.26190962 43.70053547 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ008 | Parking Louvre | 20 Boulevard Victor Hugo 06000 Nice | 7.26445177 43.69992958 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ009 | Parking Palais Méditerranée | 63 Rue de France 06000 Nice | 7.26287123 43.69556265 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ010 | Parking Grimaldi | 11 Rue Maccarani 06000 Nice | 7.26441619 43.69801298 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ011 | Parking Ruhl Méridien | 1 Prom. des Anglais 06000 Nice | 7.26596991 43.6956485 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ012 | Parking Nice Etoile | Rue Lamartine 06000 Nice | 7.26843645 43.70099682 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ013 | Parking Sulzer | 103 Quai des États-Unis 06000 Nice | 7.27109925 43.69536681 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ034 | Parking St Roch | 50 Boulevard Saint-Roch 06000 Nice | 7.293372 43.712966 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ035 | Parking Acropolis | Avenue du XVème Corps 06000 Nice | 7.2803553 43.7074462 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ036 | Parking Barla | Rue Auguste Gal 06300 Nice | 7.2848911 43.7021683 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ037 | Parking Lenval | 57 Avenue de la Californie 06200 Nice | 7.2410026 43.6893049 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ038 | Parking Arenas | 455 Promenade des Anglais 06200 Nice | 7.2147461 43.6681686 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ039 | Parking Magnan | 4 Rue de la Corderie 06000 Nice | 7.2435164 43.6910143 | 22/02/2002 |
|
|
| Device:JALDYN-OFFSTPKG-OBJ040 | Parking INT_PARK | 4 Rue de la Corderie 06000 Nice | 7.2435164 43.6910143 | 22/02/2002 |
|
|
Emplacement des capteurs
Modèle de données
Le modèle de données permet de structurer les informations selon le schéma ci-dessous :{
"id": "OffStreetParking:JALDYN-OFFSTPKG-OBJ001",
"type": "OffStreetParking",
"address": {
"type": "PostalAddress",
"value": {
"addressCountry": "FR",
"streetAddress": "18 Avenue Félix Faure",
"postalCode": "06000",
"addressLocality": "Nice"
}
},
"availableSpotNumber": {
"type": "Number",
"value": 325,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2024-07-04T08:55:35.000Z"
}
}
},
"dataProvider": {
"type": "Text",
"value": "Métropole Nice Côte d%27Azur"
},
"dateModified": {
"type": "DateTime",
"value": "2024-07-04T08:55:35.000Z"
},
"location": {
"type": "geo:json",
"value": {
"coordinates": [
7.26985643,
43.69770086
],
"type": "Point"
}
},
"message": {
"type": "Text",
"value": "325",
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2024-07-04T08:55:35.000Z"
}
}
},
"name": {
"type": "Text",
"value": "Parking Massena"
},
"refDevice": {
"type": "Text",
"value": "Device:JALDYN-OFFSTPKG-OBJ001"
},
"source": {
"type": "Text",
"value": "Dedale"
},
"totalSpotNumber": {
"type": "Number",
"value": 325,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2024-07-04T08:55:35.000Z"
}
}
}
}Documentation relative à l'API
La documentation est utile aux développeurs désirant utiliser l'API fournie par la Métropole Nice Côte d'Azur.
Ci-dessous, vous trouverez la description de l'utilisation de l'API ainsi que la possibilité d'effectuer des tests de requêtes API (certaines API nécessitent une clé, voir Public Access Level et Right dans la description du jeu de données.)Vous pouvez demander une clé d'API en cliquant ici.
Exemple de code
Afin de faciliter la prise en main de l'API, plusieurs exemples d'extraction des données stockées par la métropole sur son entrepôt « Temps Réel » et « Historique » sont mis à disposition des développeurs.Ces exemples ne prennent pas en compte la globalité des cas d'usage et des attributs décrits dans le dataModel. Il est possible de les adapter pour répondre à un besoin plus spécifique. Afin d'avoir plus de détails sur la liste complète des attributs, nous vous conseillons de vous reporter à la documentation de l'API.
Les exemples sont proposés dans les langages suivants « Curl / Java / Javascript / Python / C# », avec les cas d'usage suivants :
- Temps réel – Dernière valeur reçue au moment de la requête
- Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
- Cas d'usage 2 : Renvoie les données d'un ID donné
- Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
- Historique
- Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
Curl
- Temps réel - Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
curl -X GET "https://api.nicecotedazur.org/nca/parking/offstreet/?idPattern=^OffStreetParking:JALDYN-OFFSTPKG&api_key=API_KEY"- Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?api_key=API_KEY"- Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?attrs=availableSpotNumber,address&api_key=API_KEY"- Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/parking/offstreet/histo/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?attrs=availableSpotNumber&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY"Java
- Temps réel - Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class case1 {
public static void main(String[] args) throws IOException, InterruptedException {
String urlencode = "https://api.nicecotedazur.org/nca/parking/offstreet/?idPattern=^OffStreetParking:JALDYN-OFFSTPKG&api_key=API_KEY";
HttpRequest request = HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_2)
.uri(URI.create(
urlencode))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());
}
} - Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class case2 {
public static void main(String[] args) throws IOException, InterruptedException {
String urlencode = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?api_key=API_KEY";
HttpRequest request = HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_2)
.uri(URI.create(
urlencode))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());
}
} - Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class case3 {
public static void main(String[] args) throws IOException, InterruptedException {
String urlencode = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?attrs=availableSpotNumber,address&api_key=API_KEY";
HttpRequest request = HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_2)
.uri(URI.create(
urlencode))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());
}
} - Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class case4 {
public static void main(String[] args) throws IOException, InterruptedException {
String urlencode = "https://api.nicecotedazur.org/nca/parking/offstreet/histo/OffStreetParking:JALDYN-OFFSTPKG-OBJ001?attrs=availableSpotNumber&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY";
HttpRequest request = HttpRequest.newBuilder()
.version(HttpClient.Version.HTTP_2)
.uri(URI.create(
urlencode))
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());
}
} Javascript
- Temps réel - Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
const url = "https://api.nicecotedazur.org/nca/parking/offstreet/"
const params = {
idPattern: '^OffStreetParking:JALDYN-OFFSTPKG',
api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));- Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
const url = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
const params = {
api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));- Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
const url = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
const params = {
attrs: 'availableSpotNumber,address',
api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));- Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
const url = "https://api.nicecotedazur.org/nca/parking/offstreet/histo/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
const params = {
attrs: 'availableSpotNumber',
fromDate: '2023-07-01T09:00:00',
toDate: '2023-07-31T09:00:00',
api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));Python
- Temps réel - Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
import requests
import urllib.parse
url = "https://api.nicecotedazur.org/nca/parking/offstreet/"
searchParams = {
'idPattern': "^OffStreetParking:JALDYN-OFFSTPKG",
'api_key': 'API_KEY'
}
response = requests.request("GET", url, params=searchParams)
print(response.text)- Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
import requests
import urllib.parse
url = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
searchParams = {
'api_key': 'API_KEY'
}
response = requests.request("GET", url, params=searchParams)
print(response.text)- Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
import requests
import urllib.parse
url = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
searchParams = {
'attrs': 'availableSpotNumber,address',
'api_key': 'API_KEY'
}
response = requests.request("GET", url, params=searchParams)
print(response.text)- Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
import requests
import urllib.parse
url = "https://api.nicecotedazur.org/nca/parking/offstreet/histo/OffStreetParking:JALDYN-OFFSTPKG-OBJ001"
searchParams = {
'attrs': 'availableSpotNumber',
'fromDate': '2023-07-01T09:00:00',
'toDate': '2023-07-31T09:00:00',
'api_key': 'API_KEY'
}
response = requests.request("GET", url, params=searchParams)
print(response.text)C#
- Temps réel - Cas d'usage 1 : Renvoie les parkings de type "OffStreetParking"
using System;
using System.Net;
using static System.Web.HttpUtility;
namespace Case1
{
class Program
{
static async Task Main(string[] args)
{
string URL = "https://api.nicecotedazur.org/nca/parking/offstreet/";
using var client = new HttpClient();
var builder = new UriBuilder(URL)
{
Query = "idPattern=^OffStreetParking:JALDYN-OFFSTPKG&api_key=API_KEY"
}
var url = builder.ToString();
var res = await client.GetAsync(url);
var content = await res.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}- Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
namespace Case2
{
class Program
{
static async Task Main(string[] args)
{
string URL = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001";
using var client = new HttpClient();
var builder = new UriBuilder(URL)
{
Query = "api_key=API_KEY"
}
var url = builder.ToString();
var res = await client.GetAsync(url);
var content = await res.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}- Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
namespace Case3
{
class Program
{
static async Task Main(string[] args)
{
string URL = "https://api.nicecotedazur.org/nca/parking/offstreet/OffStreetParking:JALDYN-OFFSTPKG-OBJ001";
using var client = new HttpClient();
var builder = new UriBuilder(URL)
{
Query = "attrs=availableSpotNumber,address&api_key=API_KEY"
}
var url = builder.ToString();
var res = await client.GetAsync(url);
var content = await res.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}- Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
namespace Case4
{
class Program
{
static async Task Main(string[] args)
{
string URL = "https://api.nicecotedazur.org/nca/parking/offstreet/histo/OffStreetParking:JALDYN-OFFSTPKG-OBJ001";
using var client = new HttpClient();
var builder = new UriBuilder(URL)
{
Query = "attrs=availableSpotNumber&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY"
}
var url = builder.ToString();
var res = await client.GetAsync(url);
var content = await res.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}