• ベストアンサー

GoogleMapのAPIで初期の地図の表示

GoogleMapのAPIで初期の地図の表示をしたいです。 初期の位置をDBから取ってきてその情報を元に表示したいです。 いろいろやってみましたがうまくいきません。 PHP4.4とDBはDB2です。 教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2 です。 当然、以下の部分も必要です。 var map = null; var geocoder = null; // 初期化 // <body onload="load()"> で呼び出されています function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(35.67431, 139.69082), 13); // GClientGeocoderを初期化 geocoder = new GClientGeocoder(); } } これらのソースに、#2で書いたものを追加、と言う事ですよ。 当然、Google Maps のAPI keyはXXXではなく、取得したものを指定して下さい。 http://www.geekpage.jp/web/google-maps-api/ GEEKなページのGoogle Maps API を最初から読んで理解していけば難しいことはありません。

eccschool
質問者

補足

何度もすみません。 DBから取得した住所をJavascriptに渡せたのですが、その情報をもとに緯度経度を取り出すというのがわかりません。あと、その緯度経度をもとに初期表示というのが目的です。 <?php $DBaddress = "大阪市北区芝田" ; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAKeodYAh1Nwl_nAMXwxLMtBSC5B7_MxPtqlxCQwd0QI3Cuv7JOxTp8TCJGdhudgycU3vU3mjNTZ5vhQ" type="text/javascript" charset="utf-8"></script> </head> <body onload="load()"> <div id="map" style="width:450px; height:400px"></div> <script type="text/javascript"> //<![CDATA[ var map = null; var geocoder = null; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(35.67431, 139.69082), 13);//ここへの値の代入の仕組みがわかりません。 geocoder = new GClientGeocoder(); } } window.onload = function(){ showAddress('{$DBaddress }'); } function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(address); } } ); } } //]]> </script> </body> </html>

その他の回答 (2)

回答No.2

補足に書いてあるHPでは、フォームデータをJavaScriptの showAddress();という関数に入れています。そのソースをそのまま使うとした場合、下記のようになると思います。 <?php $DBaddress = "hogehoge" ;//データ取得して$DBaddressに入れる、文字列です //あとは、このデータをJavaScriptへ渡せばよいです。面倒だからヒアドキュメントで書きました。 echo <<<EOC <script type="text/javascript"> //<![CDATA[ window.onload = function(){ showAddress('{$DBaddress }'); } //]]> </script> EOC; ?> こんな感じでしょうか。 文字エンコードには注意して下さい。 参考まで。

eccschool
質問者

補足

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2&key=XXX" type="text/javascript" charset="utf-8"></script></head> <body onload="load()"> <script type="text/javascript"> //<![CDATA[ window.onload = function(){ showAddress('大阪市北区芝田'); } function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(address); } } ); } } //]]></script></body></html> となりPHPから値が受け渡せましたが地図が表示できません。 どのようにしたら良いでしょうか?

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

実際にどうコーディングしたら、どんなエラーメッセージが でたなどの情報がないと答えるのは難しいですね。

eccschool
質問者

補足

http://www.geekpage.jp/web/google-maps-api/geocoder-0.php を参考に書いたのですが、テキストボックスなしでブラウザの起動と同時に初期の住所情報をDBから受取り表示させようとしています。 DBから住所情報=大阪市北区芝田・・・という情報をうけとりこの情報を元に初期表示をしようと考えています。 どのように表記したらよいでしょうか? よろしくお願いいたします。

関連するQ&A