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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

2回答

770閲覧

いgoogle geocodeを使って住所から経度緯度を取得するファイルの作成

u-sukesan

総合スコア156

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

1クリップ

投稿2021/11/17 14:57

編集2021/11/18 02:26

開発環境上の理由でPHP5.3環境
Mac OS  最新
Chrome 最新

PHPのfile_get_contentsなどを利用して、GETパラメータで住所を送ったら、google geocodeAPIを利用して経度緯度を返すファイルを作りたいのですが

直接下記にアクセスしたら最後のconsoleで経度緯度の取得はできているのを確認したのですが
geocoder.php?add=東京都庁

geocoder.php

PHP

1<meta charset="utf-8"> 2<script async defer src="https://maps.google.com/maps/api/js?key=APIKEY&callback=initMap"> 3</script> 4<script> 5 function initMap() { 6 var latlng=new Object(); 7 var geocoder = new google.maps.Geocoder(); 8 var address ="<?php echo urldecode($_REQUEST['add']);?>"; 9 //中心表示 10 geocoder.geocode( 11 { 12 'address': address, 13 'region': 'jp' 14 }, 15 function (results, status) { 16 console.log(status) 17 if (status == google.maps.GeocoderStatus.OK) { 18 latlng['lat']=results[0].geometry.location.lat(); 19 latlng['lng']=results[0].geometry.location.lng(); 20 } 21 } 22 ); 23 console.log(latlng) 24 return latlng; 25 } 26</script> 27

別のPHPファイルから下記のように取得を試みましたが返り値が空になります。
どのようにすれば取得できるでしょうか

access.php

PHP

1$header = Array( 2 "Content-Type: application/x-www-form-urlencoded", 3 "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 4); 5$data = http_build_query( 6 array( 7 'add' => '東京都庁' 8 ) 9); 10$options = array('http' => 11 array( 12 'method' => 'GET', 13 'header' => implode("\r\n", $header), 14 ) 15); 16$lat_long=file_get_contents(dirname(_FILE_)."/geocoder.php" . '?' . $data,false,stream_context_create($options)); 17var_dump($lat_long);

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

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

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

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

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

guest

回答2

0

自己解決

別のやり方で方法を検討いたします。

投稿2021/11/21 02:33

u-sukesan

総合スコア156

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

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

0

ファイル名はgeocoder.phpじゃないでしょうか?

file_get_contents(dirname(_FILE_)."/geocode.php" . '<---geocodeになってます。

投稿2021/11/18 00:35

skys215

総合スコア910

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

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

u-sukesan

2021/11/18 02:27

大変失礼しました投稿ミスです。修正いたしました。しかしそこは実際は問題ありません。
skys215

2021/11/19 01:17

詳しく見るとgeocoder.phpはinitMapを定義しただけで、呼び出してはありません。 console.logはブラウザーコンソールにメッセージを出力するだけで、得る事はできません。
u-sukesan

2021/11/21 02:32

あ、なるほど、確かにそうですね 一度initMapを呼び出す方法を考えてみます
skys215

2021/11/21 03:32

initMapを呼び出してもphpではその結果はもらえません。 そのままphpからgoogle gecode APIを呼んだ方がいいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問