Google Maps API 質問箱
■ このスレッドは過去ログ倉庫に格納されています
WebProg板には馬鹿しか居ない事が分かったのでこちらで。 Google Maps API Documentation http://www.google.com/apis/maps/documentation/ ※注意事項 ローカルでの動作テストはできません http://www.google.com/apis/maps/signup.html でキーを取得して適当なサーバに置いて実行して下さい >>59 書き方が悪かった・・・ var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(), ); で初期表示の座標は固定してます。 問題は、その後にマウスでグリグリっと移動させないようにしたいのですが どうすれば良いか分かる人居ないかお? MapControlを置いてない状態にして map.disableDragging() map.disableInfoWindow() とかじゃダメ? google mapでただ地図を表示するプログラムを3種類書きました。 その1は、座標をJavaScript中に埋め込んだもの。 その2は、座標をXML形式で外だししたもの。 その3は、座標をjson形式で外だししたものです。 で、IE6では3種類とも正常に動作しました。 しかし、Geckoエンジンに変えてみてみると、その1以外は地図の外枠のみ表示されて地図が表示されません。 ブラウザはSleipnir2.5.8.geckoエンジンはSleipnir付属のものをそのままインストールしています。 症状から見て、外だしした座標データの取得に失敗しているんではないかと思うのですが、 対策が分かりません。 どのような対策を採れば、geckoエンジンを使用しても見ることが出来るでしょうか? どうぞよろしくお願いいたします。 わすれてました。ソース晒しておきます。 xml版 function startUp() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("mymap")); GDownloadUrl( "akihabara.xml", mySetCenter ); function mySetCenter(data){ var obj = GXml.parse(data); var lat = Number(obj.getElementsByTagName("lat")[0].firstChild.nodeValue); var lng = Number(obj.getElementsByTagName("lng")[0].firstChild.nodeValue); var zoom = Number(obj.getElementsByTagName("zoom")[0].firstChild.nodeValue); map.addControl(new GSmallMapControl()); map.setCenter(new GLatLng(lat, lng), zoom); } } } onload = startUp; onunload = GUnload; json版 htmlで<script type="text/javascript" src="json.js"></script>を追加してある function startUp() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("mymap")); GDownloadUrl( "akihabara.json", mySetCenter ); function mySetCenter(data){ var obj = data.parseJSON(); map.addControl(new GSmallMapControl()); map.setCenter(new GLatLng(obj.lat, obj.lng), obj.zoom); } } } onload = startUp; onunload = GUnload; 自己レスですが、 >if (GBrowserIsCompatible()) { の部分をコメントアウトすると地図が表示されました。 GBrowserIsCompatible()を使っている他のプログラムはgeckoエンジンでも問題なく動いています。 一応、Firefox2.0.0.1でも試してみましたが、Sleipnir+geckoエンジンと全く同じ動作をします。 GBrowserIsCompatible()とXMLまたはjsonの組み合わせの時だけ地図が表示されないですね。 さっぱり分かりません(TT)。全く無関係だと思うんですが、相性なんでしょうか?? Firefox でも Sleipnir でも動かないってことなら相性ってことはないでしょ。 世の中の>>62 意外のFirefoxユーザはみんなGoogle Map API使えてる はずだから>>62 の書いたコードのどこかがおかしいんだと思うよ。 どこまで実行されてるかalert()でも出しながら一つずつチェックしなおしましょう >66 レスありがとうございます。 そうですね、alert入れて追ってみます。(大昔のCのデバッグでprintf入れまくってたのを思い出しますね^^;) ところで、このプログラムを動かしているのはWindowsServer系なんですが、そういうのも関係してくる ものでしょうか? サーバー系のプログラムは初心者なので、手探り状態です。。 お世話になっております。 alertを入れてプログラムを追ってみました。 >if (GBrowserIsCompatible()) を入れた状態で実行すると >GDownloadUrl( "akihabara.xml", mySetCenter ); で、応答が帰ってきませんでした。 >if (GBrowserIsCompatible()) をコメントにすると >GDownloadUrl( "akihabara.xml", mySetCenter ); からはきちんと応答が帰ってきて、地図が表示されます。 これはどういうことなのか・・? んーー???分かりません。 >if (GBrowserIsCompatible()) が、何か悪さをしているとしか思えないんですが・・そういう認識でいいのでしょうか? 解決しました。 呼び出しもとのhtmlに <script type="text/javascript"> //<[DATA[ if (!GBrowserIsCompatible()) alert("未対応のブラウザです"); //]]> </script> を追加し、jsファイルから if (!GBrowserIsCompatible()) の部分を削除したらうまく動きました。 ちょっと釈然としないですが、こういうものなんでしょうかね。 どうもお世話になりました。 はじめまして。 http://amaznode.fladdict.net/ のようなものを 作りたいのですがFlashのみで開発できるものなのでしょうか? 初歩的な質問で申し訳ありません。 分かる方がいましたら、アドバイスを頂けると助かります。 PSPで使えたらいいなぁ・・・ >>69 変数mapのスコープの問題かなぁ マーカーの画像をすべて同一のものに変更する場合、一つずつ経度緯度を指定しなきゃならないんですか? GoogleMapEditerで生成したMAPのマーカーを変更するにはどうしたら良いでしょうか? なんかマイマップってのが使えるようになってるが、 これもおいおいAPI開放かな このAPI公開されたら あんなことやこんなことまでできるようになるよね。 HP上にGoogleMapsを使って地図を表示しようとしています。 クライアントから場所を指定されたので、GoogleMaps本サイトのほうで地図のサイズを合わせて 緯度経度を測り、その緯度経度をこちらが制作している地図のほうに持って行ったんですが 実際に表示されているところは、本サイトよりも数km右下の位置が表示されています。 さらに地図の拡大縮小を行うと位置がどんどんずれ、中心点が海外のほうまで行ってしまいます。 これはどういった現象なんでしょうか?いままで数回GoogleMapsを使っていて初めての現象なんですが・・・ >>89 それだとズレても数百m >>87 座標計算を間違えてんだろ 162 名前: ekken [simauma_dx@mail.goo.ne.jp] 投稿日: 2007/07/18(水) 12:38:17 ID:eO6yKRYW いいじゃないか アンタらのブログはアクセス数にこたわらなければならないほど、立派なないようなのか? ↓コイツ、バカだねぇ 70 名前: 名無しさん@八周年 投稿日: 2007/07/18(水) 12:31:04 ID:wL1uswPu0 http://ibuling.blogspot.com/ 2007年7月14日 Googleの広告審査能力は0に等しいのね(´・ω・) 名もなきネット人狙い撃ちで陰口を叩き、独り悦に入る魂の障害者、それがekken 時流に乗った新興産業の個担当者部分に媚を売り、おこぼれに預かろうとするコバンザメネット業者、それがekken 現在ネット上には八百萬のekkenがいる… 投稿者 ? 場所 16:52 つーことで、 どいつもこいつも http://blog.livedoor.jp/fem_dom_2006/archives/50755611.html http://18.dtiblog.com/n/nekora/file/22362134.htm http://blog.livedoor.jp/mixi_homer http://ahonosatoshi.blog82.fc2.com/blog-entry-18.html http://3.dtiblog.com/h/homer2006/file/21470389.htm 163 名前: Trackback(774) 投稿日: 2007/07/18(水) 20:03:55 ID:SmOJW1nB えっけんの名がでると急にレスがとまるなwww (行数制限の関係で以下略 元スレ http://pc11.2ch.net/test/read.cgi/blog/1178949190 で確認されたし) >90 全く同じコードを白紙のHTMLに持って行くと正確な場所に中心点が行くんです。 ページに組み込むとずれる・・・ コードは一緒なんですけどね・・・ なんでだろ >>92 全く同じって、キーとかは書き換えてるんだよね? 同じドメインのところなので、Keyも同じです。 ただ、周りの装飾物があるかないかの違いです。 >>94 画面上の座標から計算してたりする? それが意図どおり取れていないのでは? 中心座標はGoogleMapsの本ページから取りました。 URLから緯度経度を抜き出して、貼り付けたんですが・・・。 マーカーの大きさを、地図の拡大縮小倍率に合わせて変えたいんだけどできるかな? >>100 ズームのイベントを拾って切り替えるとか >>101 切り替えができないんです・・・ 大きさが初期の倍率のままになっちゃうんですよね。 >>102 マーカー用のファイル自体を切り替えるの。 どこか出来た事あるけど、APIでは用意されてなかったと思う。 ページ読み込みと同時に、mySplから取得した住所を元に Mapを表示させようとしてるのですが、 どうしてもpointに住所が渡せないようです。 「見つかりません」エラーになります。 ソースに緯度経度をベタウチするとちゃんと表示されます。 アドバイスをいただけませんか。 ソースです ソース1 <?php echo "<?xml version=\"1.0\" encoding=\"Shift-JIS\"?>"; ?> <!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" ; xml:lang="ja" lang="ja"> <head> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAt9NUrJ3G5wMYrCqF5MRKrxTY-UucDK5Qe4_5dSu6b4pSWUCClhRkLz2f9aNlw9-LPJ-t8mrh9qqZgg" ; type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //<![CDATA[ var map = null; var geocoder = null; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); geocoder = new GClientGeocoder(); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(35.748987, 139.543103), 13); } } ソース2 function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " は見つかりませんでした"); } else { map.clearOverlays(); map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(address); }});} } //]]> </script> <title>PHP TEST</title> </head> <body onload="load(); showAddress(document.myFORM.tx_12.value; Accept-charset="UTF-8")" onunload="GUnload()"> 〜省略〜 <tr><td class="td1">市区町村</td><td class="td2"><input type="text" size="50" name="tx_12" value=<?php print($row['city']); ?>></td></tr> 地図にルートよりの線引きたいんだけど簡単に書く方法は無いものかね。 >>107 >地図にルートよりの線引きたいんだけど簡単に書く方法は無いものかね。 これはどう? ttp://circle.cc.hokudai.ac.jp/vrmap/Lab/GMapLine/ クリックで線が引けて、ポイントは移動・追加・削除できる。 数値座標とEncodedPolyLine にも対応している。 一つの地図にGMarkerを二つ以上おきたいのですが var no1 = new GLatLng(35.70150, 139.77087); var marker = new GMarker(no1); var no2 = new GLatLng(35.702265, 139.76990); var marker = new GMarker(no2); と指定するとno2のものしか表示されません どうにかして同時に表示させる方法はありませんでしょうか? >110 の質問と似てるんだけど、クリックイベント付きのマーカーを4つ以上置こうとすると 5つ目から表示されないんです。 GMarkerって、個数制限ってありますか? >>110 二つ目のmarkerをmarker2とかに >>113 合ったとしても4つとかではない >>113 4つは少ないな〜 GMarkerManager使ってみれば? でも、クリックイベントが使えないんだっけかな・・・ 知ってる人教えたげて ボタンでどんどんマーカーを配置していって、それを消すというものを作りたいのですが、 ↓のソースでマーカーを削除する事が出来ません。clearOverlays()で全部消すことは出来るのですが、 removeOverlay(marker)で一つずつ消す事が出来ません。 どこか間違ってる場所があれば指摘していただけないでしょうか? function setPos(){ customMarkerObj = new GIcon(); customMarkerObj.image = "test.png"; customMarkerObj.iconSize = new GSize(16, 27); customMarkerObj.iconAnchor = new GPoint(35, 139); var gpObj = new GLatLng(keido, ido); var marker = new GMarker(gpObj, customMarkerObj); map.addOverlay(marker); } function mvPos(){ keido += 0.001; ido += 0.001; } function rmMarker(){ map.removeOverlay(marker); } //]]> </script> <form> <input type="button" value="setMarker" onClick="setPos()"> <input type="button" value="move" onClick="mvPos()"> <input type="button" value="remove" onClick="rmMarker()"> </form> var marker; function setPos(){ customMarkerObj = new GIcon(); customMarkerObj.image = "test.png"; customMarkerObj.iconSize = new GSize(16, 27); customMarkerObj.iconAnchor = new GPoint(35, 139); var gpObj = new GLatLng(keido, ido); marker = new GMarker(gpObj, customMarkerObj); map.addOverlay(marker); } function mvPos(){ keido += 0.001; ido += 0.001; } function rmMarker(){ map.removeOverlay(marker); } //]]> </script> <form> <input type="button" value="setMarker" onClick="setPos()"> <input type="button" value="move" onClick="mvPos()"> <input type="button" value="remove" onClick="rmMarker()"> </form> Geocoding APIの質問もここでいいですか? http://www.geocoding.jp/api/ Geocoding APIをphpで使いたいです。 nusoap.phpをクライアントにしたいんですが、やり方がわかりません。 手頃なサンプルとかありませんか? ※下記のソースで実行してみたんですが、SOAPの応答がありません(´・ω・`)ショボーン ================================= $address = '東京都港区六本木'; $geocode_url = 'http://www.geocoding.jp/api/' ; $soapclient= new soapclient($geocode_url); $param = array('q' => $address); $res = $soapclient->call('get', $param); print_r($res); ================================== 実行結果: $resはempty あの…すいません。 パソコンにconnAPIDOLLがない〜と書かれているんですが 意味がわかりません。どうすればいいのでしょうか? GMarkerのsetImage()を使うと、画像が歪むんですが どうすれば正しい画像を表示できますか? >>125 自己レスです。解決しました。 GIconオブジェクトを先に生成しておいて、 GMarkerのコンストラクタにぶち込んだらうまくいきました。 GMarkerを複数生成する場合に、同じ座標のマーカーが複数あると IE6でエラーが発生します。 FireFoxでは大丈夫です。 何か回避方法はありますか? ジオコーダーで住所から緯度経度に変換するのですが、 精度を良くは出来ないのでしょうか? 例えば以下の2つが一緒の緯度経度で表示されてしまいます。これを もっと細かい緯度経度の取得をしたいのですが。 埼玉県川越市1-11-11 埼玉県川越市1-11-22 Google Maps APIを使ったサイトを作れないものかと考えています。 具体的には、Wordpressで、GeoMashup plugin を使っています。 できれば、タグとマーカーの色を対応させたいのですが、 何かいい方法はないでしょうか? タグをクリックすると、そのタグに該当するページの一覧と、 地図が表示される感じです。 他にGoogle Maps APIを簡単に利用できるCMSがないかと探して、 joomla でGoogle maps API コンポーネントもインストールしてみましたが、 こちらなら実装できそうでしょうか?まだ使い方が良くわかりません。 コンポーネント作者によると http://www.atlspecials.com/index.php 見たいなのが実現できるそうなんですが。 はてなワールドって Google Maps 使ってるのかな? 自分で地形画像をテクスチャとして回転させたり加工したりする やりかたってある? あれはGoogleMapだよ がんばれば出来なくはないんじゃね? >134 おお、それはすごいな。頑張って調べてみるわ。 情報ウィンドウを一つのマップ上に2つ以上表示させるにはどうすればいいのでしょうか? 今のところ、他の情報ウィンドウを表示させると、表示されていた情報ウィンドウが消えてしまいます。 また、情報ウィンドウが出ている時にマップ上をクリックしても同様に消えてしまいます。 これを防ぎたいのですが・・・ 自分のアプリケーションに Google Map 組み込むのは NG なのかな。 規約には 「Google が用意した API で使用すること」 とあるがブラウザコンポーネント上で Google の JavaScript 使って引っ張ってくれば問題ないんだろうか。 自分のアプリケーションから Google が用意した API を呼び出せばいいんじゃないの? 多人数でプレイできるゲームを作ろうと思ってるんだけど, 他のユーザーの情報をマップ上に表示できますか? A,B,Cのプレーヤーがいて,Aがマップ上に兵士みたいなオブジェクトを設置すると B,CのマップにもAの兵士オブジェクトが表示されるようにしたいんだけど. マーカー表示数が多く100以上表示させると非常に遅くなってしまいます。 画面内にあるマーカー表示数に制限をかけたいのですがどのようにすればよろしいでしょうか? >>142 自分でマーカーを表示させてるんだろ? なら自分で制限すればいいんじゃね? >>143 マーカー数を消したくはないんですよ。 画面内に表示させる数を制限させたいんです。 意味不明で申し訳ないです。 100個のマークデータがあるんですが、画面内には20個表示させたいんですよ。 ↓のを参考にしたのですが、マークを一つ一つどちらかに指定しなければいけないんです。 マーカーを1000個つくる http://groups.google.com/group/Google-Maps-API-Japan/browse_thread/thread/a5b96819c00b6a7c/08f556691ec1eca2#08f556691ec1eca2 もっと効率的にできないのかなと色々探してるところです。 >>147 それだと、下のように一つ一つ表示のための縮尺を指定しなければいけないんですよ。 10個位なら可能なんですが100個単位になってくると結構手間なんですよね。 manager = new GMarkerManager(map); createMarkerToMap(); } } function createMarkerToMap(){ manager.addMarker(new GMarker(new GLatLng(35.17299710376745, 136.89990520477295)), 17); manager.addMarker(new GMarker(new GLatLng(35.173404904366166, 136.89986765384674)), 15); manager.addMarker(new GMarker(new GLatLng(35.17325581621244, 136.89760386943817)), 17); manager.addMarker(new GMarker(new GLatLng(35.172861169780006, 136.89783453941345)), 10); } GMarkerManagerの使い方がいまいちわかりません・・・ 表示領域内にあるマーカーの数数えて、20個以上あったらそれを削除すればいいじゃん。 そんな簡単な事も思いつかないの? >>141 クッキーとか使うんですか? あと,大雑把な難易度教えて欲しいんですけど. 自分はC,C++が使えて,タグ打ちで簡単なHPを作ったことがあって,linuxを少し触ってるようなスキルなんですが. 答えにくいスキルだなw 試行錯誤すれば、出来る。かな。 ttp://www.asahi-net.or.jp/~cs8k-cyu/javascript/gma_shmup_test/ >>151 頭硬くて申し訳ありません。 そのやり方が分らないのですが教えてくれませんか? >>156 自分でマーカー作ってるんだろ?あほか。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる