- ベストアンサー
GoogleMapのAPIで初期の地図の表示
GoogleMapのAPIで初期の地図の表示をしたいです。 初期の位置をDBから取ってきてその情報を元に表示したいです。 いろいろやってみましたがうまくいきません。 PHP4.4とDBはDB2です。 教えてください。 よろしくお願いします。
- みんなの回答 (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 を最初から読んで理解していけば難しいことはありません。
その他の回答 (2)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
補足に書いてあるHPでは、フォームデータをJavaScriptの showAddress();という関数に入れています。そのソースをそのまま使うとした場合、下記のようになると思います。 <?php $DBaddress = "hogehoge" ;//データ取得して$DBaddressに入れる、文字列です //あとは、このデータをJavaScriptへ渡せばよいです。面倒だからヒアドキュメントで書きました。 echo <<<EOC <script type="text/javascript"> //<![CDATA[ window.onload = function(){ showAddress('{$DBaddress }'); } //]]> </script> EOC; ?> こんな感じでしょうか。 文字エンコードには注意して下さい。 参考まで。
補足
<!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)
実際にどうコーディングしたら、どんなエラーメッセージが でたなどの情報がないと答えるのは難しいですね。
補足
http://www.geekpage.jp/web/google-maps-api/geocoder-0.php を参考に書いたのですが、テキストボックスなしでブラウザの起動と同時に初期の住所情報をDBから受取り表示させようとしています。 DBから住所情報=大阪市北区芝田・・・という情報をうけとりこの情報を元に初期表示をしようと考えています。 どのように表記したらよいでしょうか? よろしくお願いいたします。
補足
何度もすみません。 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>