Cake Php パン屋へ行こう

2,464 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,464
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cake Php パン屋へ行こう

  1. 1. 第 5 回 SE 勉強会  2008/4/20 (日)
  2. 2. パン屋へ行こう
  3. 3. パンやケーキは自分で作るのは大変
  4. 4. だったら、パン屋( Bakery )へ行こう
  5. 5. パン屋の名前は 『 The Bakery, Everything CakePHP 』
  6. 6. http://bakery.cakephp.org/
  7. 7. このパン屋には CakePHP の コンポーネントやヘルパーなどがいっぱい
  8. 8. そのまま食べてもおいしいけど、
  9. 9. アレンジするともっとおいしくなる
  10. 10. 例えば、 Google Geocoder http://bakery.cakephp.org/articles/view/google-geocoder
  11. 11. 住所を渡すと緯度・経度を 返してくれるコンポーネント
  12. 12. 便利だけど、ちょっとアレンジ
  13. 13. アレンジのポイント
  14. 14. 1つ目
  15. 15. maps.google.com から取得しているが、 maps.google.co.jp に変更する
  16. 16. 2つ目
  17. 17. 返り値は1つだけでは寂しいので、 複数の値を返す
  18. 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. 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. 20. パン屋は楽しいね
  21. 21. 終わり

×