Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cake Php パン屋へ行こう

2,517 views

Published on

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

Published in: Technology
  • Be the first to comment

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. 終わり

×