Documentation

To get started, you will need to do the following steps:

  1. Register — Set up an account with just your name, E-mail, and a password.
  2. Create a Map — This will give you widget code to put the map on your site as well as client keys you will use in your website or app to communicate with the Real Time Map API.
  3. Decide on your client code — We have examples in Node.js, PHP and C/C++.
  4. Your code will send JSON messages with Lat/Long or Zipcode to the service, along with parameters to customize your map, such as dot size and color, delay and duration.
  5. Implement the daemon server to improve performance.
  6. Deploy your map widget.

System Architecture

The graphic below shows the system architecture and how data flows from your website or mobile service to our API and finally to the end-users viewing the map.

Architecture

Client Libraries & Examples

We offer client libraries in PHP, Node.js, and C/C++.

PHP
https://github.com/zipcodeapi/mapapi-php
Node.js
https://github.com/zipcodeapi/mapapi-nodejs
C/C++
https://github.com/zipcodeapi/mapapi-c

Server Daemon (Highly Encouraged)

We highly encourage you to use our server daemon by downloading it here. This includes a 32-bit and 64-bit version of a daemon that runs on a Linux server. Please contact us at with any questions.

Installing
  1. Once downloaded and extracted on the server, run redline13-mapapi-daemon-install.sh.
  2. Then update /etc/redline13-mapapi-server/redline13_mapapi_server.ini with you map ID and key.
  3. Finally, run sudo service redline13-mapapi-daemon start.
Usage

The PHP client has built in support. Simply supply /tmp/redline13_mapapi_server_socket as the $serverUnixSocketFilename parameter to the RealTimeMapApi constructor.

You can also use the daemon with Node.js or any other language. All you need to do is pass the JSON encoded string for a single point to the /tmp/redline13_mapapi_server_socket UNIX socket. On success, you should receive the response OK.

Benefits
  1. You don't have network delay making the API request directly in your website code, meaning less wait time for users.
  2. The daemon will batch together API requests, meaning that you don't put as much strain on your network.

API Request Format

An API request is an HTTP POST request to https://realtimemapapi.com:4434/ telling us what points to draw on the map. The data is a JSON encoded message in the following format below. You can specify a variable number of points. The latitude and longitude are in degress.

{
	"mapId": "<YOUR MAP ID>",
	"key": "<YOUR MAP KEY>",
	"points": [
		{"lat": 39.969994, "lng": -74.940015},
		{"lat": 37.410019, "lng": -122.049751}
	]
};

Alternatively, you can specify a zip code instead of latitude and longitudes. An example of this is below.

{
	"mapId": "<YOUR MAP ID>",
	"key": "<YOUR MAP KEY>",
	"points": [
		{"zipcode": "08057"},
		{"zipcode": "94043"}
	]
};

Optional Configuration

With each point, you can provide the following additional keys.

Key Value
r The radius of the point to be drawn in pixels. This must be a number (i.e. no quotes around it).
c The HEX color (format: "#000000") of the point to be drawn.
c2 The HEX color (format: "#000000") to transition to as the point grows on the map.
delay The delay in milliseconds before this point is displayed. The delay cannot be more than 30 seconds (30000ms).
visible_time The amount of time in milliseconds that point is displayed (excludes additional fade in and fade out time). The time cannot be more than 30 seconds (30000ms).