題名のことを実現したいのです。
ホットペーパー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
そしてgoogle map apiを
javascript
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4 <title>Google Maps V3</title> 5 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 6 <script type="text/javascript" src="http://maps.google.com/maps/api/js?&sensor=false"></script> 7 <script type="text/javascript"> 8 google.maps.event.addDomListener(window, 'load', function() 9 { 10 var lat =35.60472; 11 var lng =140.12333; 12 var latlng = new google.maps.LatLng(lat, lng); 13 var mapOptions = { 14 zoom: 12, 15 center: latlng, 16 mapTypeId: google.maps.MapTypeId.ROADMAP, 17 scaleControl: true 18 }; 19 var mapObj = new google.maps.Map(document.getElementById('gmap'), mapOptions); 20 21 var marker = new google.maps.Marker({ 22 position: {lat: <?= $lat ?>, lng: <?= $lng ?>}, 23 map: mapObj 24 }); 25 }); 26 </script> 27</head> 28<body> 29 <div id="gmap" style="width: 500px; height: 370px; border: 1px solid Gray;"> 30 </div> 31</body> 32</html>
としました。
しかし、結果はこの緯度経度が県庁の緯度経度のためか千葉県庁の周りの店舗しか表示されません。それも地図は県庁を指したままで、店舗の位置情報を教えてくれません。
large_areaを入れてもlatとlngがパラメータにあると、latとlngの方を優先するみたいでlarge_areaの時よりも県全体の店舗情報が少なく表示されます。ある地点からの範囲内のお店の検索を行う場合の範囲を表すrangeを使っても、以前より検索する範囲が広くなりましたが県全体の店舗を網羅することができませんでした。
緯度・経度の測地系を指定できますdatumを入れても同じでした。
僕がしたいのはlat lng でlarge_areaを使った時と同じくらいの県全体の店舗情報を取得し、なおかつ地図に各店舗の位置情報を表示させることです。
また、余談ですが一つの地図に表示するのではなく、ホットペーパーapiのレスポンスフィールドである各店舗情報が入ったtableの中に地図を表示させたいんです。
このサイトを参考にしていますが、どうやらidが関係しているみたいですが・・・
php
1<div id="map" data-lat="<?= h($restaurants->shop->lat); ?>" data-lng="<?= h($restaurants->shop->lng); ?>"> 2 3 </div> 4
if(!$xml->shop){ echo 'WE can not find'; } else { foreach($xml->shop as $r){ echo '<table>'; echo '<tr>'; echo '<td>'; echo $r->name; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td>'; echo <<<EOM<script type="text/javascript" src="http://maps.google.com/maps/api/js?&sensor=false"></script> <script type="text/javascript"> google.maps.event.addDomListener(window, 'load', function() { var lat =35.60472; var lng =140.12333; var latlng = new google.maps.LatLng(lat, lng); var mapOptions = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true }; var mapObj = new google.maps.Map(document.getElementById('gmap'), mapOptions); var marker = new google.maps.Marker({ position: {lat: <?= $lat ?>, lng: <?= $lng ?>}, map: mapObj }); }); </script> EOM; echo '</td>'; echo '</tr>'; echo '</table>'; ?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/11 08:12
退会済みユーザー
2016/10/11 08:13
2016/10/11 08:19
退会済みユーザー
2016/10/11 08:21