2016-04-08 132 views
0

試圖像this谷歌靜態地圖 - 畫一個圓

enter image description here

創建一個圓圈靜態地圖在path參數我不明白如何獲取enc部分。這似乎是一些編碼路徑,包括圓/長和圓的大小。

https://maps.googleapis.com/maps/api/staticmap? 
center=51.44208,5.47308& 
zoom=14& 
size=693x648& 
path=color:blue|fillcolor:0x00d2c196|weight:1| 
enc%3Aad_yHofn%60%40JyFh%40sF%60AcFxAmElBqD~BoCnCiBtC_AzCUzCTvC~%40lChB~BnCnBpDxAlE%60AbFf%40rFLxFMxFg%40rFaAbFyAlEoBpD_CnCmChBwC~%40%7BCT%7BCUuC_AoCiB_CoCmBqDyAmEaAcFi%40sFKyF%3F%3F 

Link to Google's documentation

**編輯:發現這些:

Drawing a circle Google Static Maps

Encoded Polyline Algorithm Format

+1

相關的問題:[GMAP繪圖工具來圖像JPEG(靜態地圖URL)](http://stackoverflow.com/questions/31277220/gmap-drawing-tools-to-image- jpeg-static-map-url) – geocodezip

+2

你想要哪個圈子?你想要它的半徑是什麼?您需要使用這些參數創建折線,然後對其進行編碼以創建編碼多邊形,以便在靜態地圖上顯示。 – geocodezip

+0

Thx結果在下面! – Bxx

回答

1

這就是我想出了:

function funcStaticMapWithCircle($lat, $lng) { 

    //$lat & $lng are center of circle 

    $mapCentLat = $lat + 0.002; 
    $mapCentLng = $lng - 0.011; 
    $mapW =   600; 
    $mapH =   600; 
    $zoom =   14; 

    $circRadius =  0.75;   //Radius in km 
    $circRadiusThick = 1; 
    $circFill =   '00BFFF'; 
    $circFillOpacity = '60'; 
    $circBorder =  'red'; 

    $encString = GMapCircle($lat,$lng,$circRadius); //Encoded polyline string 


    $src = 'https://maps.googleapis.com/maps/api/staticmap?'; 
    $src .= 'center=' .$mapCentLat. ',' .$mapCentLng. '&'; 
    $src .= 'zoom=' .$zoom. '&'; 
    $src .= 'size=' .$mapW. 'x' .$mapH.'&'; 
    $src .= 'maptype=roadmap&'; 
    $src .= 'style=feature:water|element:geometry.fill|color:0x9bd3ff&'; 
    $src .= 'path='; 
    $src .= 'color:0x' .$circBorder. '00|'; 
    $src .= 'fillcolor:0x' .$circFill.$circFillOpacity. '|'; 
    $src .= 'weight:' .$circRadiusThick. '|'; 
    $src .= 'enc:' .$encString; 


    return $src; 
} 

GMapCircle功能是從:Drawing a circle Google Static Maps