Google Maps API 質問箱
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/07/21(木) 12:52:31ID:zMECXA3l0809nobodyさん
2008/03/11(火) 07:35:39ID:???どっちかのgetLocationsしたポイントが真ん中に来て欲しいのなら
GLatLngBoundsはあくまで適切なzoomサイズの計算のためだけに使っておいて
最後にcenterだけ変更
0810nobodyさん
2008/03/11(火) 10:45:41ID:83XDff5LgetLocationsで30個ほどマーカーを置きたいのですが
上から順番に動作するわけじゃない為
extendが上手く動いてないのかな
という意味です
0811nobodyさん
2008/03/11(火) 18:13:59ID:???グーグルマッパーの俺様がきましたよ。
とりあえずサイト見せてくれれば速攻みてあげるのですが。
これは処理のタイミングの問題だね。
geocoder.getLocations( )で定義するファンクションが実行されるのは、
いわゆるAjax的な通信処理が終わった後ということになります。
問い合わせして数ミリ秒いかかる処理を別スレッドで実行しているため、
グローバルなone twoの値をとっていますが
var gb = new GLatLngBounds( one, two );
map.setCenter( gb.getCenter(), map.getBoundsZoomLevel( gb ) );
ここに来たときの one two には何も入ってないわけです。
よって解決方法は
1.setTimeout()でGLatLngBoundsのタイミングをずらす。
(但しこの場合はレスポンスタイムがわからないため)
2. グローバル変数にカウンタを持たせる。読み込み後、同一ファンクションを通過させて
0812nobodyさん
2008/03/11(火) 18:15:43ID:???2. グローバル変数にカウンタを持たせる。
(読み込み後、同一ファンクションを通過させて。必要数の処理を確認した後GLatLngBounds
を実行する。)
などなど、やるかたはいろいろあるとおもうよ。
0813nobodyさん
2008/03/11(火) 19:07:03ID:???いわゆるAjax的な動きが全く分かってませんでした (TдT)
本当にありがとうございました
0815nobodyさん
2008/03/13(木) 17:28:34ID:+Hfx6OQJ規約の
>ユーザーは、Google マップを本人またはその他の者が、多量の緯度経度の数値データをダウンロードやフィードするためのアクセスを得るような方法で利用してはなりません。
にひっかかるんでしょうか?
0816nobodyさん
2008/03/13(木) 17:59:35ID:HYLpscVUGoogle マップを本人またはその他の者が、多量の緯度経度の数値データを
ダウンロードやフィードするためのアクセスを得るような方法で利用しなければおk
0818nobodyさん
2008/03/14(金) 10:15:37ID:???GClientGeocorder.getLocations を一度に大量に使うと
間違いなく規約に引っかかる
マーカー作るときは「既にget済みの」LatLngで実行すれば
大量の問い合わせは発生しない
さて大量のポイントをどうやって「既にget済みの」状態にするかだ
0819nobodyさん
2008/03/14(金) 11:18:47ID:???同じようなことしてる人のソースをパクれば規約違反にならないでしょうか?
0820nobodyさん
2008/03/14(金) 21:47:39ID:???人のソースをパクりました。
0821nobodyさん
2008/03/15(土) 02:25:01ID:???0822nobodyさん
2008/03/15(土) 06:52:42ID:???ただ単に経緯度情報が欲しいがためにアクセスしまくるなって事だろ。
解決したならいいけど。
0823nobodyさん
2008/03/16(日) 15:55:50ID:???このデータはGoogle Maps APIでは取れないですよね?
どこから取ってるんでしょう?
GeoCoderのAPIでアドレス検索 > 経緯度取得 > hotpperなどで経緯度周囲の店
検索とかはできるんですが・・・
0824nobodyさん
2008/03/16(日) 15:57:21ID:???0825nobodyさん
2008/03/16(日) 16:37:28ID:???GlocalSearchっていうGoogle Ajax Searchの方のAPI使えば、
経緯度周囲の情報が取れるんですね。
0826nobodyさん
2008/03/17(月) 10:29:54ID:???ブラウザが落ちるようになったんですが、何か情報をお持ちの方いませんか?
参考:
textbox.jp :: 備忘録 :: MacOSX10.3のSafariでGoogleMapを表示すると落ちる件
http://www.textbox.jp/note/safari-google-map-crash.html
0827nobodyさん
2008/03/17(月) 10:40:22ID:???日本語版のヘルプページが更新されていないのが問題とのこと
ソース ↓
http://groups.google.com/group/Google-Maps-JP-Troubleshooting/browse_thread/thread/6145907864ac9be1
英語版では
Which web browsers does Google Maps support?
Google Maps currently supports the following web browsers:
* IE 6.0+ (download: Windows)
* Firefox 1.5+ (download: Windows Mac Linux)
* Safari 2.0.4+ (download: Mac)
If you're using one of these browsers and are encountering problems, please visit our troubleshooting guidelines.
とのことです。
0828826
2008/03/17(月) 11:31:50ID:???・GBrowserIsCompatibleで判定しても駄目
・そもそも Google マップ http://maps.google.co.jp/ を開いても落ちる
ので、Googleの対応待ちかと。
0829nobodyさん
2008/03/25(火) 19:55:29ID:ePll5l2q参考書を買って勉強中なのですが、
↓のソースに情報ウィンドウを追加させるにはどのようにしたらいいでしょうか?
http://www.openspc2.org/reibun/Google/Maps/API/ver2/marker/005/index.html
0830829
2008/03/25(火) 19:57:10ID:ePll5l2qhttp://www.openspc2.org/reibun/Google/Maps/API/ouyou/ver2/013/index.html
0832829
2008/03/26(水) 00:14:42ID:fPFMy6eV言葉足らずで申し訳ありません。
やりたいこと:
>>830のソースを元とし、マーカーがクリックされたらcsvから読込まれた情報ウィンドウを表示したい
わからないこと:
GEvent.addListenerをどこに追加し、
csvのデータをmarker.openInfoWindowHtmlに渡す?その追加方法がわかりません.
0833829
2008/03/26(水) 00:17:10ID:fPFMy6eVfunction addMarker() {
map.clearOverlays(); // 全てのマーカーを消去(線も消えるので注意)
var count = 0; // 表示するマーカーの数をカウントする変数
var CR = String.fromCharCode(13);
var txt = httpObj.responseText;
var pointData = txt.split(CR);
var area = map.getBounds();
for (var i=0; i<pointData.length; i++) {
var pnt = pointData[i].split(",");
var mx = pnt[0];
var my = pnt[1];
var gpObj = new GLatLng(my, mx);
if (area.contains(gpObj)) {
map.addOverlay(new GMarker(gpObj));
count++;
}
GEvent.addListener(gmap, "click", function(marker){
marker.openInfoWindowHtml(csvのデータ指定);
} );
}
0834nobodyさん
2008/03/26(水) 01:03:55ID:???変数がいきなり変わってたりして意味不明やけど、
map.addOverlay(new GMarker(gpObj));
こうすると追加したマーカーに対してイベントを設定できない。
marker = new GMarker(gpObj));
中略
GEvent.addListener(marker, "click"〜
合ってるかどうかは知らんけど、たぶんいける
0835829
2008/03/26(水) 19:03:16ID:+Zi/Ns8Oレスありがとうございます。
ご指摘いただいた箇所を修正しましたが、エラー表示が出てしまいました。
変更箇所が悪かったのでしょうか?
if (area.contains(gpObj)) {
marker = new GMarker(gpObj));
count++;
}
GEvent.addListener(marker, "click", function(marker){
marker.openInfoWindowHtml(csvのデータ指定);
} );
}
---------------------------------------
marker = new GMarker(gpObj));
↑の行数でエラーが出てるようです
ライン:37
文字:32
エラー:';'がありません。
コード:0
---------------------------------------
0836nobodyさん
2008/03/26(水) 20:34:17ID:???0837nobodyさん
2008/03/27(木) 12:23:57ID:x8Bfv0lr0839829
2008/03/27(木) 23:43:16ID:MqTPnQ18>>650の方が同じようなことをやっていましたので参考にしました。
現在は情報ウィンドウが表示されるようになりました。
ありがとうございます。
次なのですが、情報ウィンドウが表示できたのですがCSVから読込みさせる方法でつまづいています。
どのように指定すればいいのでしょうか?
0840829
2008/03/27(木) 23:45:01ID:MqTPnQ18var CR = String.fromCharCode(13);
var txt = httpObj.responseText;
var pointData = txt.split(CR);
var area = map.getBounds();
for (var i=0; i<pointData.length; i++) {
var pnt = pointData[i].split(",");
var mx = pnt[0];
var my = pnt[1];
var gpObj = new GLatLng(mx, my);
if (area.contains(gpObj)) {
marker = new GMarker(gpObj);
count++;
map.addOverlay(marker);
GEvent.addListener(map,"click",function(marker){
if(marker){
marker.openInfoWindowHtml(CSVの列番号を指定);
}});}}
0841829
2008/03/27(木) 23:47:05ID:MqTPnQ18var mz = pnt[3];
var gpOiw = new htmlElem(mz);
if (area.contains(gpObj)) {
↑こんな感じで足せばいいと思ったのですが考えが甘かったです・・・
0842nobodyさん
2008/03/28(金) 01:45:51ID:???教えるじゃなく、ソース全部書いてあげることになりそう
0843nobodyさん
2008/03/29(土) 12:10:58ID:???0844nobodyさん
2008/04/09(水) 17:34:20ID:???このサイトを携帯から見た場合、地図の表示範囲内にあるマーカーの一覧が下に表示されます。
携帯向けなのでJAVAスクリプト未使用のはず。
JAVAスクリプトを使わずにこのような表示をするにはどうしたら良いのでしょうか。
0845nobodyさん
2008/04/09(水) 17:43:54ID:???マーカーの場所はデータとして持っていて、
どの場所を地図上にマーキングするかをコントロールしているんだから
そのマーキングの名称やらをページ内に表示できることに何の不思議もないですよ。
0846nobodyさん
2008/04/09(水) 19:00:22ID:???なるほど。
地図の範囲内にマーカー座標が含まれている
↓
マーカー表示、およびマーカー情報を表示ということですよね。
その判別(絞込み)方法が知りたいのですが・・・
0848nobodyさん
2008/04/09(水) 21:09:39ID:???> 地図の範囲内にマーカー座標が含まれている
いや考え方が逆
地図の範囲内に含まれるポイントをマークする。
この違いは判りますよね?
0849nobodyさん
2008/04/09(水) 21:36:21ID:???はい、それについては判ってます。
>地図の範囲内に含まれるポイントをマークする
この場合PHPで処理するなら次のような感じですよね。
if(地図の範囲内にポイントが存在) {
マーカーの情報をデータベースから取り出して表示
}
どうやって地図の範囲を調べてるのか、そのロジックがわからないんです。
0850nobodyさん
2008/04/10(木) 00:39:22ID:???0851nobodyさん
2008/04/10(木) 02:43:56ID:???> どうやって地図の範囲を調べてるのか、そのロジックがわからないんです。
API見てこいボケ!そのまんまあるわ
0852nobodyさん
2008/04/10(木) 04:41:32ID:???探してみましたが見つかりませんでした。
Google Static Maps APIに関しては情報が少ないんで良く分からないんですよね。
とりあえずもうちょっと探してみます。
0853nobodyさん
2008/04/10(木) 12:14:03ID:???var gmarker = new GMarker(new GLatLng(37.4419, -122.1419));
gmarker.onclick = function() { alert('clicked.'); }
としたけどだめでした。
こんな簡単な質問でごめんなさい。
0854nobodyさん
2008/04/10(木) 22:47:34ID:???そもそも gnaviはXOOPSのモジュールでおーぷんそーすだろ?。
ごたごたいうまえにソースDLしてみてみろよ
ソースDLできるじゃねぇか
0855nobodyさん
2008/04/10(木) 23:09:55ID:???>>853
var gmarker = new GMarker(new GLatLng(37.4419, -122.1419));
GEvent.addListener(gmarker, "click", function() {
alert('clicked.');
});
でいけねーかな。
googlemapのイベントはリスナーでとるのよ
0856nobodyさん
2008/04/11(金) 05:18:50ID:???まだ携帯版は公開されてないんです。
とりあえず>>850さんの案で、自力計算から求めてみることにしました。
色々とコメントありがとうございました。
0857nobodyさん
2008/04/11(金) 09:55:14ID:???http://xoops.iko-ze.net/modules/weblogD3/details.php?blog_id=16
これね
0858nobodyさん
2008/04/11(金) 12:06:33ID:???ぽすぐれなんかだと、2点の距離計算が組み込み関数として用意されてるしね。
0859nobodyさん
2008/04/11(金) 13:13:16ID:???2点間の距離なんて関数なくても馬鹿でもわかるだろw
0860nobodyさん
2008/04/11(金) 19:50:30ID:???0861nobodyさん
2008/04/17(木) 02:31:01ID:???0862nobodyさん
2008/04/18(金) 10:45:06ID:???取得済みの「マップAPIキー」を無効にする方法はありますか?
0863nobodyさん
2008/04/18(金) 22:27:03ID:???0864nobodyさん
2008/04/25(金) 15:45:08ID:VjGTXO6P0865nobodyさん
2008/04/25(金) 20:40:24ID:???ナビタイム、X02NK/X03HT向けの地図アプリ
http://k-tai.impress.co.jp/cda/article/news_toppage/39641.html
ナビタイム、「920P」向けの助手席カーナビサービス
http://k-tai.impress.co.jp/cda/article/news_toppage/39621.html
0867nobodyさん
2008/05/03(土) 13:37:27ID:VSvM8iEpアイコンをクリックするとふきだしがエリアの下に入ってしまいます。
http://www.uniqlo.com/jp/shop/
↑のサイトのようにマーカーをクリックしたときにふきだしを
特定の位置にずらしたいのですが、
どのようにしたらよいでしょうか。。
0868nobodyさん
2008/05/04(日) 12:11:01ID:???やってるサイトがあるんならソース見ろよ
0871nobodyさん
2008/05/04(日) 15:45:50ID:???JavaScriptをPHPで出力すのは無しね
0873nobodyさん
2008/05/06(火) 22:37:57ID:???0874nobodyさん
2008/05/08(木) 09:27:55ID:???ttp://www.php.co.jp/bookstore/
0875nobodyさん
2008/05/08(木) 10:53:02ID:???phpscriptかw
0878nobodyさん
2008/05/09(金) 18:40:39ID:???0879nobodyさん
2008/05/09(金) 22:23:31ID:???そのMap表示は、再表示が必要なとこあたりか?
0881nobodyさん
2008/05/11(日) 01:40:29ID:s1zwpcjq0884nobodyさん
2008/05/11(日) 16:29:20ID:???なんでそんな気持ち悪い聞き方すんの?
0885nobodyさん
2008/05/11(日) 17:08:53ID:???出来るワケねーだろ!って言われて終りかと思ってた。
0887nobodyさん
2008/05/15(木) 15:36:36ID:???0888nobodyさん
2008/05/15(木) 20:37:19ID:???Google MapsをFlashから利用できる「Google Maps API for Flash」公開
http://internet.watch.impress.co.jp/cda/news/2008/05/15/19573.html
0889nobodyさん
2008/05/20(火) 09:50:40ID:???ttp://geoquake.jp/blog/2008/05/19/googlemaps/
0890nobodyさん
2008/05/21(水) 13:40:16ID:???グーグルアースのプライマリデータってエクスポートできる方法ありますか?
0891nobodyさん
2008/05/22(木) 03:42:09ID:???0892nobodyさん
2008/05/22(木) 10:23:40ID:???0893nobodyさん
2008/05/22(木) 10:41:48ID:???0895nobodyさん
2008/05/23(金) 00:17:05ID:jcOM65/Q0896nobodyさん
2008/06/14(土) 01:27:52ID:???0897nobodyさん
2008/06/14(土) 18:24:00ID:???ある一定以上の倍率にしたくない場合はどのような方法がありますでしょうか?
GEvent.addListener(map, 'zoomend', function(oldZoomLevel,newZoomLevel ){ });
を使えば、「一度倍率が変更された」後に強制的に倍率変更は出来そうですが、
そもそも変更させないことは可能でしょうか?
お知恵をお貸し下さいm(_ _)m
0898nobodyさん
2008/06/18(水) 19:59:25ID:???IEだと
XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。
とエラーを吐かれてしまいます。
テストはいずれもWindowsXP内から、鯖は自鯖でMySQL 5.0.45+PHP 5.2.4です。
片一方ではうまくいってるのでなんともし難く、手前の腕では手詰まってしまいました。
何卒お力添えを。
0899nobodyさん
2008/06/19(木) 00:43:53ID:tlswNeC+マーカーをクリックするとふきだしが出るようにしています。
その際に、端っこのマーカーだと地図が少しずれて、
GEvent.addListener(map, 'moveend',〜 が呼び出されてしまいます。
これを呼び出されないようにする方法もしくは、呼び出された後にふきだしが表示されていれば
何も処理しないということは出来ないでしょうか?
0900898
2008/06/19(木) 02:44:22ID:???すんごい初歩ミス…orz
0901nobodyさん
2008/06/19(木) 10:11:02ID:???ムリポ
結局は噴出しでムーブするのは事実だからね
呼び出されなくする方法はないので
フラグでもつけたらいいんじゃない?
0902nobodyさん
2008/06/21(土) 01:15:46ID:???バルーン閉じてもう一回同じマーカークリックするとちゃんと表示されるんだけども。
0903nobodyさん
2008/06/21(土) 12:05:15ID:???当て推量だけどimgタグを使っていてwidthとheightを指定していないってオチじゃないか?
画像を読み込む前はイメージのサイズがわからないのでレイアウトが崩れる。
一度読み込むとキャッシュに残っているのでサイズは既知。
仕様と言えば仕様だが。
0905nobodyさん
2008/06/22(日) 02:23:04ID:???<IMG>タグを使って height 指定をしていない場合で画像の高さによって
全体の高さが変わる場合は崩れる仕様。
これはバルーン内のHTMLが形成された後に画像がロードされるから。
903が言うようにheightを指定するのが一番いいが結構面倒。
javascriptの仕様では直前にheightをとろうとしても失敗することがおおいので以下のようにすればヨロシ
GEvent.addListener( m , "click", function(){
var i =new Image();
i.onload=function(){this.openInfoWindowHtml("<img src='画像のURL'>");};
i.src="画像のURL";
})
配列でマーカー管理してるのならもうちょっと複雑になるが、
この方法では画像をロードしてからバルーンが出るのでレイアウトは崩れない。
画像が重いと開くまで一瞬時間がかかるけど。
マーカーが少ないなら全部プリロードしてしまうのも良いかもね
0906nobodyさん
2008/06/22(日) 02:24:24ID:???GEvent.addListener( m , "click", function(){
var i =new Image();
i.onload=function(){m.openInfoWindowHtml("<img src='画像のURL'>");};
i.src="画像のURL";
})
0907902
2008/06/22(日) 11:24:36ID:???丁寧にどうもです。
マーカーは20個以上あるので配列使って配置する中で単純に<IMG>タグのみで
作ってました。
HTML生成が先ということは、最悪<TABLE>タグを使ってheight指定してあげればレイアウトは保持されるということで合ってますかね?
画像は240*180でほぼ固定なのでこっちのほうが面倒は無いかなと思ったのですが。
プリロードの件、参考になりました。
今回は急を要した話だったので、今後もう少し知識付けてから参考にさせていただきます。
ありがとうございました。
0908nobodyさん
2008/06/22(日) 17:36:28ID:???<img src="image01.jpg" width="240" height="180" alt="image01">
「保持されるという事で合ってますか」とか聞く前に試してみればいいと思うんだが?
レス書いた文字数より遥かに少ないキータッチで確認できるのに(w
あと、width属性が原因かどうかは誰にも分からんよ。元の質問が「崩れる時がある」なんて情報不足も甚だしい。
真面目なレスが来ただけで奇蹟と思わないと。
HTMLの知識より先に身につける事があるんじゃね?
レス数が900を超えています。1000を超えると表示できなくなるよ。