PhpRiot
Follow phpriot on Twitter
Sponsored Link
Download Article
Download this article in PDF format with all listings and files.

Price: $5.00 AUD
(Approx. $5.00 USD)

More information
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store
Free iPad/iPhone App
Available on the App Store

  • PHP manual
  • Zend Framework manual
  • Smarty manual
  • PHP articles
  • PHP training

Related Articles

Generating Static Images of Google Maps

Generating Image Requests with Smarty

As an added bonus, I've included here a Smarty plug-in you can use to easily generate images. Without giving too much of a description, using this plug-in you will be able to use the following in your PHP code:

Listing 3 Sample usage of the getgooglemapimageurl plug-in (listing-3.tpl)
<img src="{getgooglemapimageurl w=500 h=300 latitude=$lat longitude=$lng key=$key}" />

Listing 4 shows the code for the getgooglemapimageurl plug-in, which belongs in a file called function.getgooglemapimageurl.php in your Smarty plug-ins directory.

Note: This code comes as-is with little description, and is intended for users with some knowledge of implementing Smarty plug-ins. For more information on Smarty, you can refer to the Smarty section of PhpRiot
Listing 4 The getgooglemapimageurl plug-in for Smarty (function.getgooglemapimageurl.php)
<?php
    function smarty_function_getgooglemapimageurl($params, $smarty)
    {
        $baseUrl = 'http://maps.google.com/staticmap';
 
        $defaults = array(
            'key'        => '',
            'longitude'  => '',
            'latitude'   => '',
            'w'          => 0,
            'h'          => 0,
            'type'       => '',
        );
 
        $types = array('roadmap', 'mobile');
 
        foreach ($defaults as $k => $v) {
            if (!array_key_exists($k, $params))
                $params[$k] = $v;
        }
 
        if (strlen($params['key']) == 0)
            $smarty->trigger_error('getgooglemapimageurl: you must specify your Google Maps API key', E_USER_NOTICE);
 
        $params['w'] = min(512, (int) $params['w']);
        $params['h'] = min(512, (int) $params['h']);
 
        if ($params['w'] <= 0)
            $smarty->trigger_error('getgooglemapimageurl: you must specify the map width in pixels', E_USER_NOTICE);
 
        if ($params['h'] <= 0)
            $smarty->trigger_error('getgooglemapimageurl: you must specify the map height in pixels', E_USER_NOTICE);
 
        // setup the required parameters
        $url = sprintf('%s?key=%s&size=%dx%d', $baseUrl, $params['key'], $params['w'], $params['h']);
 
        // specify the map type
        if (in_array($params['type'], $types))
            $url .= sprintf('&maptype=%s', $params['type']);
 
        $url .= sprintf('&markers=%lf,%lf', $params['latitude'], $params['longitude']);
 
        return $url;
    }
?>

In This Article


Additional Files