質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3162閲覧

店舗の緯度経度の値をmapに渡す方法

aba623ky

総合スコア63

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/10/11 02:17

ホットペーパーapiのレスポンスフィールドで店舗の緯度経度を取得できるのですが、その取得した緯度経度をどうやってgooglemapapiに渡せばいいのか分からないんです。
リクエストパラメータで緯度経度を設定し、それを地図に渡すことは出来ました。当然ながらそれだとリクエストパラメータで設定した緯度経度の周りの店舗しか取得できませんでした。
レスポンスフィールドだと

<table> <tr><td>$rest->$lng $rest->$lat</td></tr></table> と書きます。これをmapのコードに渡したいのですが、<td id=gmap>にしても、アイコンを指すコードをposition: {lat: <?= $rest->$lat ?>, lng: <?= $rest->$lng ?>}, にしても結果は一緒でした。結果は一緒というのは、mapの画面が白紙です。

どうやったら、gmapにレスポンスフィールドで得た緯度経度を渡すことが出来ますか?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Google Maps V3</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <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>
</head> <body> <div id="gmap" style="width: 500px; height: 370px; border: 1px solid Gray;"> </div> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/11 02:24

お店の情報を地図上にプロットしたいということでしょうか?
aba623ky

2016/10/11 02:38

skuromakuさん、おっしゃる通りです。各店舗の緯度経度をmapに表示したいんです。それも10件の店舗の緯度経度があるなら、10件の店舗分の地図を作りたいんです。(つまり10個)
dit.

2016/10/11 02:55

過去の質問の内容と何が違うんでしょうか?
aba623ky

2016/10/11 02:55

レスポンスフィールドで緯度経度を取得している所です。
退会済みユーザー

退会済みユーザー

2016/10/11 03:03

ホットペッパーAPIで座標を取得しているロジック部分を公開すればもう少し回答が付くかと思います。
aba623ky

2016/10/11 03:04

公開してますよ笑<table> <tr><td>$rest->$lng $rest->$lat</td></tr></table>
aba623ky

2016/10/11 03:04

ここの部分です。
aba623ky

2016/10/11 03:23

説明不足なため、話します。緯度経度はレスポンスフィールドではないと、地図に店舗の位置情報を載せることができないんです。
aba623ky

2016/10/11 03:25

リクエストパラメータで緯度経度を設定すると、県庁の周りしか取得できません。
guest

回答1

0

ベストアンサー

こちらのサイトで詳しく紹介されています。
http://qiita.com/matsui-a/items/c8bc896e5e287a47359e

投稿2016/10/11 03:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aba623ky

2016/10/11 03:22

xmlで実行しています。 あと、このコードだと、店舗の位置情報を表すことが出来ません。
aba623ky

2016/10/11 03:25

緯度経度をmapに渡す方法が知りたいんです。
退会済みユーザー

退会済みユーザー

2016/10/11 03:27

>店舗の位置情報を表すことが出来ません。 マーカーを設定しているので、それが”店舗の位置情報を表すこと”ではないのでしょうか? また、aba623kyさんが実装しようとしていることの100%がネットにあるわけではありません。少なくともこのサイトで”ホットペッパーAPIから取得した座標をGoogleMapに落とす"ところまでできているので、あとはカスタムすれば良いのではないでしょうか?
退会済みユーザー

退会済みユーザー

2016/10/11 03:31

>緯度経度をmapに渡す方法が知りたいんです。 ホットペッパーAPIから取得した店舗情報(座標)を地図にプロットしたいということですよね? であれば、この部分かと思います。 // マーカーを設定 var markerObj = new google.maps.Marker({ position: lating, map: mapObj, icon: markerImg });
aba623ky

2016/10/11 03:36

レスポンスフィールドで得た緯度経度を渡せないんです。 パラメータだと、県庁の周りしか取得できません。
aba623ky

2016/10/11 03:37

ここは関係ないのですか? var marker = new google.maps.Marker({ position: {lat: <?= $lat ?>, lng: <?= $lng ?>}, map: mapObj }); }); </script> </head> <body> <div id="gmap" style="width: 500px; height: 370px; border: 1px solid Gray;"> </div> </body> </html>
退会済みユーザー

退会済みユーザー

2016/10/11 03:45

>パラメータだと、県庁の周りしか取得できません。 これは何に対するパラメータなのでしょうか?ホットペッパーAPIでしょうか? 例えば、下記のようなことをしたいということでしょうか? 「現在表示されている地図上にホットペッパーの店舗情報をプロットしたい」 >ここは関係ないのですか? 関係なくはありません。その部分が何をしているのか分からないのであれば、 GoogleMapの勉強からしたほうが良いかと思います。 http://www.ajaxtower.jp/googlemaps/
aba623ky

2016/10/11 03:47

ホットペーパーapiの方です。
aba623ky

2016/10/11 03:48

モデルは、食べログの店舗情報みたいな地図が入った店舗情報が作りたいんです。
aba623ky

2016/10/11 03:54

>「現在表示されている地図上にホットペッパーの店舗情報をプロットしたい」 はい、そうです。
退会済みユーザー

退会済みユーザー

2016/10/11 03:56

紹介サイトでは決め打ちで座標を渡しています。それはサンプルだからです。 現在の地図上に表示されている店舗を取得したい場合は、下記のような手順になるかと思います。 ①地図が表示(移動後)の時点で中心座標を取得、ズームサイズを取得 ②ホットペッパーAPIに①の情報を渡す ③ホットペッパーから戻ってきた情報を地図に表示する また、以前の質問に対する回答で、答えが出ています。 https://teratail.com/questions/50718 http://hpapi.jlamp.net/?food=&budget=&credit_card=&large_service_area=&service_area=&name_kana=%E3%81%95%E3%81%A3%E3%81%BD%E3%82%8D&keyword=
aba623ky

2016/10/11 04:02

②のことができないんです。どうやって渡せばいいか分かりません。
aba623ky

2016/10/11 04:07

③もどうやって地図に表示させるのか分からないんです。
hnw

2016/10/11 04:11

1・マーカーのない状態で地図が表示できるかどうか? 2・マーカーのある状態で座標を直接数字指定で表示できるかどうか? 3・phpの設定でshort_open_tagが書いたコードに対応しているかどうか? 4・$lat,$lngにちゃんと値が入っているかどうか? 5・ソースを見て希望通りのソースになっているかどうか? まず1から順番に5まで確認してみてください。
aba623ky

2016/10/11 04:18

1と2がちょっと、、、
aba623ky

2016/10/11 04:19

1はできていません。マーカーがないと地図が表示できません。
aba623ky

2016/10/11 04:19

というより、レスポンスフィールドで得た緯度経度を渡す方法を教えて下さい。
hnw

2016/10/11 04:22

問題を解決するために大事なことです。 1が出来ていないのであればはじめから出来ません やり方はgoogleで検索したり ブラウザのデベロッパーツールを使用すればある程度解決いたしますので 1~5までをまず確認・解決しましょう。
退会済みユーザー

退会済みユーザー

2016/10/11 04:24

②GetCenter()にて中心座標を取得 https://syncer.jp/google-maps-javascript-api-matome/map/method/getcenter/ 上記サイトで座標の取得方法は分かります。 その座標を元にホットペッパーAPIへ渡すパラメータを構築します。 リファレンスを見たところ、「lat」「lng」「range」あたりを設定すれば良いと思います。 http://webservice.recruit.co.jp/hotpepper/reference.html var url ="http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=APIキー&lat={取得した座標}&lng={取得した座標}&range=5&genre=G013&format=jsonp&callback=?"; ※rangeについてはGoogleMapのズームからホットペッパーAPIのズームへの変換が必要になると思います。 ※ここではとりあえず「5:3000m」とします。 ③function disp(resultJSON) 既にこの関数で実装されています。引数のresultJSONは①の検索結果です。 ①のロジックがきちんとできていれば、問題ありません。
aba623ky

2016/10/11 04:27

リクエストパラメータでlatとlngを使うと、取得できる範囲が少ないんです。
aba623ky

2016/10/11 04:27

だから、店舗の緯度経度を使いたいんです。
aba623ky

2016/10/11 04:28

聞きたいんですが、レスポンスフィールドで緯度経度を取得してそれをgooglemapapiに渡すことって不可能ですか?
aba623ky

2016/10/11 04:29

また、僕はxmlを使っています。
退会済みユーザー

退会済みユーザー

2016/10/11 04:34

>リクエストパラメータでlatとlngを使うと、取得できる範囲が少ないんです。 rangeパラメータの設定ができていないのではないでしょうか? >リクエストパラメータでlatとlngを使うと、取得できる範囲が少ないんです。 >店舗の緯度経度を使いたいんです。 この2つは矛盾しませんか? 「リクエストパラメータでlatとlng」というのは、ホットペッパーAPIのことですよね? 「店舗の緯度経度を使いたいんです。」これもホットペッパーの情報ですよね? >聞きたいんですが、レスポンスフィールドで緯度経度を取得して >それをgooglemapapiに渡すことって不可能ですか? これは「ホットペッパAPIで取得した店舗座標を元にプロットする」という解釈で良いでしょうか? レスポンスフィールドで緯度経度=ホットペッパーAPIの戻り値ですか? であれば、可能です。
退会済みユーザー

退会済みユーザー

2016/10/11 04:39

今回「リクエストパラメータでlatとlngを使うと、取得できる範囲が少ないんです。」 という情報も初めて出てきました。 ①自分が何をしたいのか ②そのために何をしたのか ③②の結果どうなったのか →「リクエストパラメータでlatとlngを使うと、取得できる範囲が少ない」 等々、まとめてから質問を投げられたほうが良いかと思います。 そうしないと、ゴールまでの道を丸投げしていると思われてしまいます。
aba623ky

2016/10/11 04:41

skuromakuさん、実はリクエストパラメータでlat、lng、range=5を設定したら県庁から3000m範囲の店舗しか取得できなかったんです。 県全体の店舗が欲しいんです。
aba623ky

2016/10/11 04:44 編集

large_areaだと、県全体の店舗が取得できます。 リクエストパラメータで緯度経度を設定すると、県庁の周りしか取得できず、リクエストパラメータでlarge_areaを設定しレスポンスフィールドで緯度経度を求めると県全体の店舗を取得でき各店舗の緯度経度が表示されます。
aba623ky

2016/10/11 04:47

>これは「ホットペッパAPIで取得した店舗座標を元にプロットする」という解釈ですか? はい、そうです。つまり、食べログの店舗の地図がモデルです。
退会済みユーザー

退会済みユーザー

2016/10/11 04:54

>range=5を設定したら県庁から3000m範囲の店舗しか取得できなかったんです。 仕様通りです。 >large_areaだと、県全体の店舗が取得できます。 >リクエストパラメータで緯度経度を設定すると、県庁の周りしか取得できず、リクエス>トパラメータでlarge_areaを設定しレスポンスフィールドで緯度経度を求めると県全体>の店舗を取得でき各店舗の緯度経度が表示されます。 これでやりたいことはできているのではないでしょうか? >食べログの店舗の地図がモデルです。 いよいよaba623kyさんの目的のイメージが見えなくなってきました。 最初は地図上に表示された店舗情報をプロットしたいとおっしゃっていましたが、 話が変わってきています。上でも書いた通り、しっかりとやりたいこと、やってきたことをまとめてから、再投稿することをお勧めします。
aba623ky

2016/10/11 05:00

地図上に表示された店舗情報をプロットしたいんです。
aba623ky

2016/10/11 05:02

レスポンスフィールドで得た緯度経度を地図にプロットしたいんです。
aba623ky

2016/10/11 05:06

さっきから食べログ食べログと言っているのは、1つの地図に各店舗の緯度経度を乗せたくないからです。
退会済みユーザー

退会済みユーザー

2016/10/11 05:08

①最初から県全体の店舗情報を取得したい「座標とrangeを設定すると、その範囲しか取得できないから」というのが理由ですか? ②それとも、そんなことは関係なく県全体の店舗情報を取得したいのでしょうか? ①の場合 地図を移動、ズーム変更するたびにホットペッパーAPIを利用して、現在表示されている地図の座標から店舗情報を再取得する。 ②の場合 既に出来ていますよね?
aba623ky

2016/10/11 05:15

skuromakuさん、そんな話よりレスポンスフィールドのlatとlngから地図に店舗情報を乗せたいんです。 レスポンスフィールドのlatとlngを使って地図に店舗の位置情報をのせたいんですよ。 できるんですかできないんですか? できるんだったら、教えてください。お願いします。
aba623ky

2016/10/11 05:16

①最初から県全体の店舗情報を取得したい「座標とrangeを設定すると、その範囲しか取得できないから」からlarge_areaを使って県全体の店舗情報を取得したいんです。その話はしたでしょう笑
aba623ky

2016/10/11 05:17

http://hpapi.jlamp.net/ このサンプルと同じことをしたいんですが、どうやればいいか分からないんです
jm1156

2016/10/11 05:19

「できる」か「できないか」という以前に、 aba623kyさんがやりたいことが具体的に伝わっていないと思いますよ。 やりたいことがわからないのに、出来るのか出来ないのかはわかりませんよ。 それに、「できない」と言っても、出来る場合もありますし、 「できる」と思っても、出来ないこともあります。
退会済みユーザー

退会済みユーザー

2016/10/11 05:20

>①最初から県全体の店舗情報を取得したい「座標とrangeを設定すると、その範囲しか取>得できないから」からlarge_areaを使って県全体の店舗情報を取得したいんです。その話>はしたでしょう笑 であれば、上に答え書いてますよね? 「地図を移動、ズーム変更するたびにホットペッパーAPIを利用して、現在表示されている地図の座標から店舗情報を再取得する。」 そして、県全体の情報を取得した場合に、プロットする方法も書いてますよね? http://qiita.com/matsui-a/items/c8bc896e5e287a47359e 「わたしは何もしない。望んでいる答えのコードを書け!」 というのであれば、それは仕事の依頼ですよ?
aba623ky

2016/10/11 05:25

>「地図を移動、ズーム変更するたびにホットペッパーAPIを利用して、現在表示されている地図の座標から店舗情報を再取得する。」 これはどうやってやるのですか?
退会済みユーザー

退会済みユーザー

2016/10/11 05:36

「dragend」イベントを使えば良いかと思います。 http://phpjavascriptroom.com/?t=ajax&p=googlemapsapiv3_event ①地図を動かす ②dragend発生 ③②のイベント内でgetCenterにて中心座標を取得 ④ホットペッパーAPIを利用して店舗情報を取得 ⑤店舗情報の座標を元に地図にプロット
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問