将当前的Google地图视图保存为图像

时间:2011-10-25 18:36:24

标签: image google-maps save

我有一个包含一些地址的数据库。对于每个地址,地图视图将不同。

对于每个地址,有没有办法将地图视图保存为图像?

3 个答案:

答案 0 :(得分:2)

 <img src='http://maps.googleapis.com/maps/api/staticmap?center=<?php echo 
 $MyAddress?>CA&zoom=14&size=500x500&markers=<?php echo $myAddress?>&sensor=false' alt=''/>

中心是地图居中的地方。 标记是你想要的地址所以我把中心=标记。 缩放是您想要放大地图的距离 调整图片大小。 看看这里 http://code.google.com/intl/el-GR/apis/maps/documentation/staticmaps/

答案 1 :(得分:0)

在这种情况下,您可以使用here中的Google Static Maps API。

出于存储和带宽的目的,您只能存储位置的GeoPoint,并且只在用户请求时呈现图像。

答案 2 :(得分:0)

public static function getGoogleMapImage($params = array(), $saveTo = null, $https = true){
        //set default parameters
        if(!isset($params['markers'])){
            $params['center'] = isset($params['center']) ? $params['center'] : 0;
            $params['zoom'] = isset($params['zoom']) ? $params['zoom'] : 0;
        }
        $params['size'] = isset($params['size']) ? $params['size'] : '200x200';
        $params['sensor'] = isset($params['sensor']) ? $params['sensor'] : 'false';

        foreach($params as $name => $value){
            $paramString.=$name . '=' . urlencode($value) . '&';
        }
        $paramString = trim($paramString, '&');

        $httpPrefix = $https ? 'https://' : 'http://';
        $imageUrl = $httpPrefix . 'maps.googleapis.com/maps/api/staticmap?' . $paramString;

        if(!$saveTo){ //if you don't want to save image, just to display it
            return $imageUrl;
        }

        if(isset($params['format'])){
            switch($params['format']){
                case 'png8': $imgExt = '.png'; break; 
                case 'gif': $imgExt = '.gif'; break; 
                case 'jpg': $imgExt = '.jpg'; break; 
                case 'jpg-baseline': $imgExt = '.jpg'; break; 
                default: $imgExt = '.png';
            }
        }else{
            $imgExt = '.png';
        }

        $saveTo = preg_replace("/\\.[^.\\s]{3,4}$/", "", $saveTo) . $imgExt; //in case requested file extension and provided in $saveTo don't match

        if(self::getImage($imageUrl, $saveTo)){
            return realpath($saveTo);
        }

        return false;
    }

我使用curl调用从创建的$ imageUrl

获取图像