Googleマップをウェブアプリケーションに実装する作業をしていて、PHP値をGoogleに渡すのに問題がありますMaps APIのJS関数PHP、JS、Google Maps API - 中心値を渡すときに空白のキャンバスを取得するPHP値
目標は、前のページのフォームからの入力をジオコーディング(Maps APIのジオコード関数を使用)して緯度と経度を抽出し、それらをバインドすることによって決定されるポイントを中心とするマップを持つことです後でマップJS関数に渡されるPHP変数に値を渡します。次のようにこれまでのところ、私のコードは次のとおりです。
<?php
$array_of_stuff = array_values(geocode($_SESSION['address']));
$longitude = $array_of_stuff[0];
$latitude = $array_of_stuff[1];
?>
echo '<div id="map"></div>';
?>
<script>
function initMap()
{
var mapCanvas = document.getElementById("map");
var mapOptions =
{
center: new google.maps.LatLng(parseFloat(<?php echo $latitude ?>), parseFloat(<?php echo $longitude ?>)),
zoom: 5
};
var map = new google.maps.Map(mapCanvas, mapOptions);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=Whatchalookingfor&callback=initMap">
</script>
注目に値するいくつかのものは、まずあり、$ _SESSION [「アドレス」]変数は、マップの出力に、前のページにあるフォームから渡された変数であります上記のコードの元のページです。
第2に、セッション変数は、アプリケーションのすべてのページに含まれる関数ファイルに含まれているジオコード関数に渡されます。関数は基本的にgoogle mapsジオコードリンクを呼び出し、緯度と経度を含む配列を返します。次に、これをarray_values関数を使用して作業配列にバインドし、経度と緯度を別々の変数として抽出します。
これらの変数をマップを出力するinitMap()関数に渡す際に問題が発生します。私は、私は2番目にに取得するparseFloatは()アイデアをオフに左に、しかし、ここで私は、この時点までにしようとしているすべてのものです:
単に値をエコーとして作り
center: new google.maps.LatLng(<?php echo $latitude ?>, <?php echo $longitude ?>),
で中央ではないlatLangオブジェクトではなく、ハード
center: {<?php echo $latitude ?>,<?php echo $longitude ?>},
のように値をコーディングそれから私はいくつかの読書を行うために開始し、いくつかのサイトは、解析フロート法を使用してreccomend。私はそれがまだそこに、このような事実
center: new google.maps.LatLng(parseFloat('12.345678'), ...)
ようにPHPの値を持つparseFloatは()関数呼び出しを示してページのソースを表示したときに、私は数がであるようにそれはそう、すべての場合には、そのメソッドを使用してみましたが、 JSのソースコードは何らかの理由で正しく解析されません。
私のJSスキルはあまり鋭くないので、解析浮動小数点関数は単に数値を解析するか、関数宣言を表示する必要があるかどうかはわかりません。
私は、json_encode()を使って浮動小数点値を両方ともエンコードしようとしましたが、正しく呼び出すとまだ運がありませんでした。
私は固執していることは言うまでもありません。私はマップが生成されているように感じるので、左上隅に "地図"と "サテライト"ボタンが付いた茶色の空白のキャンバスを得ました。私はjavascriptのコンソールでクロムの警告を受け取っていないし、PHPエラーログに何のエラーも出ない。
ご協力いただきありがとうございます。
Hey Ram。とても素早く私に戻ってくれてありがとう。要求されたように、私たちはあなたのコードブロックを実装しました。そして、ソースコードのように見えるのは、正しい方向のステップのように見える通常のフロートとしてキャストされます。 <!DOCTYPE HTML>ここでは、ビューのソースはGoogleマップアプリ <スクリプトタイプは、= 'テキスト/ javascriptの' 文字セットが= 'UTF-8'> 'code' '
Ram!私は解決策を見つけた! Geocode APIは最初に緯度を返しますが、経度のように渡していました。一度私は2つの変数を切り替えマップは完全にロード!すべてのあなたの助けをありがとう、ちょうど答えが何だったか知りたいかもしれないと思った:) @RamRaider –