Skip to content
A PHP app that renders static maps from tile hosting services
Branch: master
Clone or download
This branch is even with aaronpk:master.

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Static Maps API


Parameters can be sent in either the query string or in the POST body.

  • zoom - optional - Set the zoom level for the map. If not specified, a zoom level will be chosen that contains all markers on the map.
  • maxzoom - optional - When a zoom level is chosen automatically, this sets an upper limit on the zoom level that will be chosen. Useful if you know your basemaps don't have imagery past a certain zoom level.
  • width - default 300 - Width in pixels of the final image
  • height - default 300 - Height in pixels of the final image
  • basemap - default "streets" - Select the basemap
  • attribution - default "esri" - "esri" or "none" - If you add attribution on the image in some other way, you can set this to "none" to hide the Esri logo
  • latitude - optional - Latitude to center the map at. Not needed if using the location parameter, or if specifying one or more markers.
  • longitude - optional - Longitude to center the map at.
  • location - optional - Free-form text that will be geocoded to center the map. Not needed if specifying a location with the latitude and longitude parameters, or if a marker is specified.
  • marker[] - Specify one or more markers to overlay on the map. Parameters are specified as: key:value;. See below for the full list of parameters.
  • path[] - Specify one or more paths to draw on the map. See below for the full list of parameters to draw a path.


  • location - Free-form text that will be geocoded to place the pin
  • lat - If a location is not provided, you can specify the location with the lat and lng parameters.
  • lng - See above
  • icon - Icon to use for the marker. Must choose one of the icons provided in this library, or specify a full URL to a png image. If an invalid icon is specified, the marker will not be rendered.

Built-In Marker Images

  • dot-large-blue dot-large-blue
  • dot-large-gray dot-large-gray
  • dot-large-green dot-large-green
  • dot-large-orange dot-large-orange
  • dot-large-pink dot-large-pink
  • dot-large-purple dot-large-purple
  • dot-large-red dot-large-red
  • dot-large-yellow dot-large-yellow
  • dot-small-blue dot-small-blue
  • dot-small-gray dot-small-gray
  • dot-small-green dot-small-green
  • dot-small-orange dot-small-orange
  • dot-small-pink dot-small-pink
  • dot-small-purple dot-small-purple
  • dot-small-red dot-small-red
  • dot-small-yellow dot-small-yellow
  • fb fb
  • google google
  • large-blue-blank large-blue-blank
  • large-blue-cutout large-blue-cutout
  • large-gray-blank large-gray-blank
  • large-gray-cutout large-gray-cutout
  • large-gray-user large-gray-user
  • large-green-blank large-green-blank
  • large-green-cutout large-green-cutout
  • large-orange-blank large-orange-blank
  • large-orange-cutout large-orange-cutout
  • large-pink-blank large-pink-blank
  • large-pink-cutout large-pink-cutout
  • large-purple-blank large-purple-blank
  • large-purple-cutout large-purple-cutout
  • large-red-blank large-red-blank
  • large-red-cutout large-red-cutout
  • large-yellow-blank large-yellow-blank
  • large-yellow-cutout large-yellow-cutout
  • large-yellow-message large-yellow-message
  • large-yellow-user large-yellow-user
  • small-blue-blank small-blue-blank
  • small-blue-cutout small-blue-cutout
  • small-gray-blank small-gray-blank
  • small-gray-cutout small-gray-cutout
  • small-gray-message small-gray-message
  • small-gray-user small-gray-user
  • small-green-blank small-green-blank
  • small-green-cutout small-green-cutout
  • small-green-user small-green-user
  • small-orange-blank small-orange-blank
  • small-orange-cutout small-orange-cutout
  • small-pink-blank small-pink-blank
  • small-pink-cutout small-pink-cutout
  • small-pink-user small-pink-user
  • small-purple-blank small-purple-blank
  • small-purple-cutout small-purple-cutout
  • small-red-blank small-red-blank
  • small-red-cutout small-red-cutout
  • small-yellow-blank small-yellow-blank
  • small-yellow-cutout small-yellow-cutout
  • small-yellow-user small-yellow-user


A path is specified as a list of longitude and latitudes, as well as optional properties to specify the weight and color of the path.

The coordinates of the path are the first value of the property, specified as a list of coordinates similar to GeoJSON.


Simple path with default color and weight.


Specifying the color and weight of the path.



Simple map centered at a location

Map with a marker centered at an address[]=location:920%20SW%203rd%20Ave,%20Portland,%20OR;icon:small-blue-cutout&basemap=gray&width=400&height=240&zoom=14

Map with an external marker image[]=lat:45.5165;lng:-122.6764;icon:

How to install

How to install on a blank Ubuntu 14.10 image on Amazon

Install base packages

sudo apt-get update
sudo apt-get install git build-essential make bison flex gcc patch autoconf locate libssl-dev curl cmake libjpeg-dev libpng-dev libgif-dev libfreetype6 libfreetype6-dev imagemagick libmagickwand-dev libyaml-dev lynx htop 

Install nginx

tar -xzf nginx-1.7.3.tar.gz
cd nginx-1.7.3/
./configure --with-http_stub_status_module
make && sudo make install

Start nginx when the machine boots

sudo sh -c 'cat << ''EOF'' >> /etc/rc.local

Install PHP

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install php5-fpm php5-cli php5-curl php5-memcache php5-dev php5-imagick

Edit /etc/php5/fpm/pool.d/www.conf and uncomment the line listen.mode = 0660.

Restart PHP sudo service php5-fpm restart

Configure the virtual host for nginx

Add the below server block to /usr/local/nginx/conf/nginx.conf and remove the default server block.

    server {
        listen 80;
        location / {
           root /var/www/static-maps-api;

           location / {
               index index.php;

           location ~ \.php$ {
               fastcgi_pass    unix:/var/run/php5-fpm.sock;
               fastcgi_index   index.php;
               fastcgi_split_path_info ^(.+\.php)(.*)$;
               include fastcgi_params;
               fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;

Add user www-data at the top of nginx.conf.

Clone the source

sudo mkdir -p /var/www/static-maps-api
sudo chown -R ubuntu: /var/www
cd /var/www/static-maps-api
git clone .


Copyright 2013 Esri, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.