http://qiita.com/ShibuyaKosuke/items/452928e235d4b1d10475
このサイトを参考に各店舗の地図を表示させようと思います。
最初はホットペーパーapiのパラメータにlat lngを入れたリクエストパラメータ(千葉県)を作成しましたが、
php
1$key='my key'; 2$count='10'; 3$lat = '35.60472'; 4$lng ='140.12333'; 5$range ='5'; 6$start =1; 7$format='xml'; 8$url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&lat='.$lat.'&lng='.$lng.'&range='.$range. '&start='.$start.'&format='.$format; 9$xml=simplexml_load_file($url); 10・・・ 11・・・ 12・・・ 13 14<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 15<html> 16<head> 17 <title>Google Maps V3</title> 18 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 19 <script type="text/javascript" src="http://maps.google.com/maps/api/js?&sensor=false"></script> 20 <script type="text/javascript"> 21 google.maps.event.addDomListener(window, 'load', function() 22 { 23 var lat =35.60472; 24 var lng =140.12333; 25 var latlng = new google.maps.LatLng(lat, lng); 26 var mapOptions = { 27 zoom: 12, 28 center: latlng, 29 mapTypeId: google.maps.MapTypeId.ROADMAP, 30 scaleControl: true 31 }; 32 var mapObj = new google.maps.Map(document.getElementById('gmap'), mapOptions); 33 34 var marker = new google.maps.Marker({ 35 position: {lat: <?= $lat ?>, lng: <?= $lng ?>}, 36 map: mapObj 37 }); 38 }); 39 </script> 40</head> 41<body> 42 <div id="gmap" style="width: 500px; height: 370px; border: 1px solid Gray;"> 43 </div> 44</body> 45</html>
結果はこの緯度経度が県庁の緯度経度のためか千葉県庁の周りの店舗しか表示されません。それも地図は県庁の位置を指したままで、店舗の位置情報を表示してくれません。
large_areaを入れてもlatとlngがパラメータにあると、latとlngの方を優先するみたいでlarge_areaの時よりも県全体の店舗情報が少なく表示されます。ある地点からの範囲内のお店の検索を行う場合の範囲を表すrangeを使っても、以前より検索する範囲が広くなりましたが県全体の店舗を網羅することができませんでした。
緯度・経度の測地系を指定できるdatumを入れても同じでした。
このサイトを調べると、ホットペーパーapiのパラメータにはlat lngが書いてありません。google map apiの方に緯度経度が書いてあります。
つまり、google map apiで緯度経度を設定しそれをホットペーパーapiのレスポンスフィールドに渡すみたいです。
※参考のコード
javascript
1<div id="map" data-lat="<?= h($restaurants->shop->lat); ?>" data-lng="<?= h($restaurants->shop->lng); ?>"> 2 3 </div> 4 5
真似て作成しましたが※idはgoogle map apiがmapのため、ホットペーパーapiの方もgmapにしました。
html
1<tr id="gmap" lat="<?= $lat ?>" lng="<?= $lng ?>"> 2 <th> 3 id 4 </th> 5 <td> 6 $r->id; 7 </td> 8 </tr>
ただ、地図が表示されるだけでした笑
それにホットペーパーapiのlatとlngを削除すると地図自体が表示されなくなります。
どうやったら店舗の位置が表示できるのですか?
わからなくなってしまいました。
まとめます。
・latとlngをパラメータに設定すると、ヒットする情報が少なくなる。
・rangeを設定すると、ヒットする件数が増えるが、large_areaと比べると断然少ない
・パラメータからlatとlngを消すと、地図自体が表示されない(店舗自体が緯度経度を持っているため、latとlngをパラメータから消した)
・そして、地図を表示できても、緯度経度に設定した周りの店舗しか表示されない
補足:レスポンスフィールドを調べると、緯度経度が書かれています。つまり、各店舗の緯度経度になります。しかし、これをどうgoogle map apiに渡せばいいのかわかりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/10 12:24
2016/10/10 12:26
2016/10/10 12:27