Your SlideShare is downloading. ×
  • Like
  • Save
Cake Php パン屋へ行こう
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Cake Php パン屋へ行こう

  • 2,226 views
Published

第5回SE勉強会の資料です

第5回SE勉強会の資料です

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,226
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 第 5 回 SE 勉強会  2008/4/20 (日)
  • 2. パン屋へ行こう
  • 3. パンやケーキは自分で作るのは大変
  • 4. だったら、パン屋( Bakery )へ行こう
  • 5. パン屋の名前は 『 The Bakery, Everything CakePHP 』
  • 6. http://bakery.cakephp.org/
  • 7. このパン屋には CakePHP の コンポーネントやヘルパーなどがいっぱい
  • 8. そのまま食べてもおいしいけど、
  • 9. アレンジするともっとおいしくなる
  • 10. 例えば、 Google Geocoder http://bakery.cakephp.org/articles/view/google-geocoder
  • 11. 住所を渡すと緯度・経度を 返してくれるコンポーネント
  • 12. 便利だけど、ちょっとアレンジ
  • 13. アレンジのポイント
  • 14. 1つ目
  • 15. maps.google.com から取得しているが、 maps.google.co.jp に変更する
  • 16. 2つ目
  • 17. 返り値は1つだけでは寂しいので、 複数の値を返す
  • 18. /app/controllers/components/geocoder_jp.php class GeocoderJpComponent extends Object { var $apiKey = ‘(google api key)’; function getLatLng($address) { $url = 'http://maps.google.co.jp/maps/geo?output=xml&key='.$this->apiKey.'&q='; $xmlurl = $url . urlencode($address); $contents = mb_convert_encoding(file_get_contents($xmlurl), 'UTF-8', 'SJIS'); $geocoder = simplexml_load_string($contents); $i = 0; $result = array(); foreach ($geocoder->Response->Placemark as $value) { $coords = $value->Point->coordinates; list($lat, $lng) = split(',', $coords); $result[$i]['lat'] = $lat; $result[$i]['lng'] = $lng; $result[$i]['address'] = (string)$value->AddressDetails->Country->AddressLine; $i += 1; } return $result; } } ※ スペースの都合で一部カットしてあります
  • 19. /app/controllers/samples_controller.php <?php class SamplesController extends AppController { var $components = array('GeocoderJp'); function index() { $address = ‘ (住所)’ ; $this->set(‘address’, $this->GeocoderJp->getLatLng($address)); } }
  • 20. パン屋は楽しいね
  • 21. 終わり