Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



25 Commits

Repository files navigation


This project contains the source code for the map initially displayed at This site is now closed.

This code has been reused and improved by at least 2 people who operate the following sites:


In this paragraph, you are supposed to have yet configured a LAMP server on which the application will be installed.

  1. Setting up the database
  • Enter the init_cameras/db directory.
  • modify the password that will permit to modify the camera database in createDb.sql.
  • execute the following command :
    mysql -h localhost -u root --password=[mysql root passwd] < createDb.sql
  1. Initializing the cameras in the database
  • You may just execute the rqt.sql script. It will initialize the database with the data from the first Odbl planet file (09/14/2012).
    mysql camera -h localhost -u camera --password=[camera user passwd] < rqt.sql
  • As an alternative, you may download your own planet or an extract, and get the cameras from it :
    • download the file or an extract and put it in the init_cameras directory. You may download extracts, like Monaco (which is easier to perform tests) at Or you may download a full planet file from the torrent found at
    • execute the script (that script requires osmosis : see It will create a surveillance.osm file and a rqt.sql file. This may be long.
    • then execute the following command :
      mysql camera -h localhost -u camera --password=[camera user passwd] < rqt.sql
  1. Set up the automatic update of the cameras
  • Enter the update_cameras repository.
  • The automatic update is based on the sequenceNumber comparison between the current state.txt from the replicate server, and the locally stored lastState.txt. So if you downloaded a planet file, you should modify the sequenceNumber in the lastState.txt file accordingly.
  • Rename config.php.example file, and edit it to enter the database password you configured for the database user "camera".
  • Create directory update_cameras/logs
  • Add the update script to your crontab. Execute :
    crontab -e
    and enter the following line :
    * * * * * [path to your update_cameras directory]/ > /dev/null 2>&1
  • In one minute, you'll see that the update script creates log files in the update_cameras/logs directory.
  1. Set up the application on the apache server.
  • enter the www directory, and copy the config.php.example file to config.php. Edit it to set up the values you wish.
  • get the Jacob Toye's IconLabel plugin for Leaflet. You can download Icon.Label.css and Icon.Label.js from (Note : I don't distribute it, as I didn't find under which licence it is released).
  • If no other application is installed on your Apache server, you may simply copy the www directory content to your /var/www directory (and remove the pre-existing index.html from that directory). In any other case you may declare a virtual host. Here is the virtual host definition I use :
    <VirtualHost *:80> ServerAdmin
    ServerAlias *

    DocumentRoot /var/www/camera
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    <Directory /var/www/camera>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined


  • OpenStreetMap and contributors : all data displayed by are from OSM : the tiles are from Mapnik (license CC-by-sa), and the camera info is extracted directly from OSM (license Odbl).
  • Switch2osm : you may recognize some little parts of their code, as I initialised the leaflet stuff from this page :
    License : CC-by-sa (so I'm bound to license the leafletembed.js file under that licence)
  • Leaflet, by cloudmade : the map is based on the leaflet API (linked from the index.php. I don't care the licence as I don't redistribute it...)
  • IconLabel plugin for Leaflet, by Jacob Toye : this plugin is used to display the clusters at low zoom levels. The style used by the map is from an example in that plugin sources.
    License : ???
    I just saw that there now exists (since Sept 23) a Leaflet.Label plugin that should be better for what we are doing...
  • Mobile_detect, by Serban Ghita and Victor Stanciu
    Licence : MIT
  • Markercluster plugin for leaflet, by Dave Leaver : by looking in their code, I discovered the Quick Hull algorithm. Thanks to him.
  • JOSM : for the tag presets, modified to add the surveillance extended tags.
    License : GNU GPL v3


Source code for







No releases published


No packages published

Contributors 4