トップページ⇒php
983コメント299KB

Google Maps API 質問箱

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/07/21(木) 12:52:31ID:zMECXA3l
Google Maps API関係はこちらで質問して!
0757nobodyさん2008/01/23(水) 12:32:14ID:???
他人ごとで、どうでもいいことではありますがw
http://blog.asial.co.jp/332
こういった利用形態は、ライセンス上問題ないんですかね。
以前カシミールというソフト上で、Google Mapが利用された際には
厳しく制限されたりしたのを見ていますので。

それにしても
>ある程度使用させていただける状態になっていると私個人としてはうれしいのですが^^;
楽観主義過ぎませんかねw
世間の著作物・ライセンスに対する認識不足はますますヒドクなってる?
0758nobodyさん2008/01/23(水) 13:14:24ID:???
>>757
アシアルの中の人だろ?
その意識はかなりタチ悪いとオモ。

手前の製品を無償配布してから言え、とオモタ。
0759nobodyさん2008/01/23(水) 13:29:03ID:???
>>755
方法はあるんだよ。 >>754 のサイトでやっている。
「ここらで」 ttp://saya.s145.xrea.com/x/kkrd.cgi でも実現されている。

このへんを追いかけてごらん。
携帯サイトのWebプログラムを語ろう
ttp://pc11.2ch.net/test/read.cgi/php/1168955769/741
0760nobodyさん2008/01/23(水) 20:35:57ID:???
>>757
よく考えないでスクリプトをコピって転載してる奴もいるな。
ttp://ke-tai.org/blog/2008/01/22/ketaigmap/
修正ってUA見て振り分けただけじゃんw
0761nobodyさん2008/01/24(木) 16:59:44ID:???
ドコモとGoogleが提携 正式発表
http://dailynews.yahoo.co.jp/fc/economy/ntt_docomo/?1201159031
0762nobodyさん2008/01/25(金) 01:55:50ID:???
携帯に標準搭載されるのはいいが、API公開してくれないと価値半減だな
0763nobodyさん2008/01/31(木) 15:01:25ID:LhzS0cv7
yahooもAPI公開してますが、どういった違いがありますか?
0764nobodyさん2008/02/01(金) 16:55:09ID:K3VRVHkR
>>757
ttp://groups.google.com/group/Google-Maps-API-Japan/browse_thread/thread/6a793ef5b13e4e58

こんな質問もあるみたいだけど、無料で閲覧できるサイトなら使えるんじゃないの?
とにかくどこかでお金取ってたら駄目なの?
0765nobodyさん2008/02/01(金) 18:26:58ID:???
>>757
アシアルのソースを使って画像を抜き出すのはダメでしょう。
下記の「派生物の生成」にあたると思います。
ttp://www.google.com/intl/ja_jp/help/terms_maps.html
>画像イメージ
>ユーザーは、全部であるか一部であるかを問わず、画像の複写、リバースエンジニアリング、逆コンパイル、逆アセンブル、変換、修正または派生物の生成をすることはできません。
0766nobodyさん2008/02/05(火) 16:30:24ID:ifQzZhST
携帯サイトでGoogle Mapの携帯Verを使おうと思うのですが、
商用サイト(マップを使う分は無料)は可能ですか?
ちょっと気になったのですが、規約にはマップ上の企業情報を使うのは禁止と書いてありますが。
地図については触れていなかったもので
0767nobodyさん2008/02/05(火) 22:58:56ID:???
http://maps.google.co.jp/intl/ja/help/terms_maps.html
0768nobodyさん2008/02/07(木) 00:43:29ID:???
座標ファイルを隠したいのだけど、方法あるの?
PHPとか使えば可能?
0769nobodyさん2008/02/07(木) 09:36:25ID:???
なんでも可能
0770nobodyさん2008/02/08(金) 00:48:09ID:???
JavaScriptでは、ローカルのファイルは読み込めないよね。
要は、直リンクできないようにしてる場合は読み込めない。
0771nobodyさん2008/02/08(金) 22:00:19ID:CMFOa3WL
DLして自鯖に置いとけば良いんじゃない
0772nobodyさん2008/02/10(日) 10:55:12ID:???
キャッシュからソース見られたら尾張
0773nobodyさん2008/02/12(火) 21:44:50ID:???
どこまで行っても、座標ファイルをパクられる可能性があるわけですね。
なんか労力かけたものが無になる・・・

http://japonyol.net/editor/
ここの地下鉄マップとかと同じ運命になるかと思うと、ね。
0774nobodyさん2008/02/13(水) 09:26:11ID:???
>>773
それがいやならGoogleMapsじゃなくて
自分で実装すればいい訳で。
0775nobodyさん2008/02/13(水) 09:32:34ID:???
getHogeHogeで読み込んだものをメモリに展開してマーキングすれば
ソースに配列作る訳じゃなしキャッシュにも残らないから盗まれにくくはなるね
0776nobodyさん2008/02/13(水) 09:58:03ID:???
ブラウザが取得できるデータはどうやっても隠蔽は不可能
嫌なら公開なんぞしない事
0777nobodyさん2008/02/18(月) 12:21:34ID:vZO+WO3q
商用利用はまったくできないようなこと利用規約にあるけど
いつから変わっんですか?
0778nobodyさん2008/02/18(月) 15:33:18ID:???
商用は内部使用のみに限るっていうのは前から
0779nobodyさん2008/02/19(火) 15:14:23ID:???
ズームの倍率によってマーカーの画像を別のものに入れ替えることは可能でしょうか?

+1ならa.png +2ならb.pngといった具合です。
0780nobodyさん2008/02/19(火) 19:07:15ID:arJJXBJC
可能。ズームを検知してそこで画像入れ替えればいい。
あとは調べれば分かる。簡単な事だ。
0781nobodyさん2008/02/19(火) 19:56:11ID:???
ズームが変更されたときイベント投げられてないんじゃないの?
0782nobodyさん2008/02/19(火) 20:02:53ID:???
ふつーにイベント来る

ttp://jsgt.org/ajax/newmon/GoogleMapsAPIv2.htm#GMap2

zoomend

oldLevel,  newLevel

このイベントは、マップビュー(地図)のズームレベル変更時(訳注:変更後)に発生します。
 イベントハンドラは引数として旧レベルと新しいズーム・レベルを受け取ります。

GEvent.addListener(map, 'zoomend', function(oldZoomLevel,newZoomLevel ){ });
0783nobodyさん2008/02/19(火) 22:25:43ID:26bl+Wko
福島県喜多方市あたりを地形図に変えると、品川区や立川市が現れる。
どうなってるんだ?
0784nobodyさん2008/02/19(火) 22:53:06ID:???
kwsk
0785nobodyさん2008/02/20(水) 02:33:38ID:???
>783
そのパソコン壊れてるよw
っていうかウィルス…
0786nobodyさん2008/02/20(水) 09:13:40ID:???
>>780-782
ありがとうございました。参考にさせていただきます。
0787nobodyさん2008/02/23(土) 17:51:38ID:m8IAPkeA
画像切り出しAPIやっときたな
http://code.google.com/apis/maps/documentation/staticmaps/

だがしかし、1日1000ユニーク画像・・・・・・・
0788nobodyさん2008/02/26(火) 23:14:28ID:???
>>783
地形図の地名はほんとにいい加減やね。うちの市も隣町の名前になってる。
0789nobodyさん2008/02/28(木) 14:34:36ID:beUB4DeX
特にサイトいじってないのに、突然map表示できなくなりました。
今までは出来てたんですが、
「Google マップ APIに使用されているキーは他のウェブサイトに登録されています。」
というエラーが出ます。
なぜでしょう。
keyを再取得しても同じkeyが発行されます。
日本語ドメインだとダメ、という情報も見ましたが、私は該当しません。
0790nobodyさん2008/02/28(木) 15:02:47ID:???
利用規約よまなかったんだろう
0791nobodyさん2008/02/29(金) 13:01:29ID:???
>>787
>query limit of 1000 unique (different) image requests per viewer per day.

ってのは、1視聴者が1日に1000ユニーク画像(パラメータ)って事なのかな?
だとしたら、自前でズームやスクロール機能を付けると場合によってはヤヴァいですねぇ…

で、この制限を超えた場合の措置ってどうなんでしょう?
APIkey単位で利用不可?
そのユーザーだけ利用不可?
利用不可はその日だけで、翌日はまた利用可能?

英語の苦手な私に、だれか教えてくださいませ。
0792nobodyさん2008/02/29(金) 15:45:44ID:???
このご時勢翻訳ツール使えばなんとかなる。

0793nobodyさん2008/03/05(水) 19:47:33ID:1NEhUyUB
「マーカーにリンクを含むkml」を反映させた状態で、
リンク先に飛ぶと常に新しいウィンドウを開くようになってるんだけど、
これを同じウィンドウに表示させることってできる?
0794nobodyさん2008/03/07(金) 17:42:37ID:Sx/QGO8b
GLatLngBounds が上手く動作しないのですが、分かる方いらっしゃいませんか

var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
var one;
var two;

geocoder.getLocations( "港区赤坂5-3-6", function(locations) {
  if (!locations || locations.Status.code != 200) {
    alert(address + " not found");
  } else {
    var place = locations.Placemark[0];
    var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
    one = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
    map.setCenter(point, 16);
    var marker = new GMarker(point);
    map.addOverlay(marker);
  }
} );
geocoder.getLocations( "港区東新橋1-6-1", function(locations) {
  if (!locations || locations.Status.code != 200) {
    alert(address + " not found");
  } else {
    var place = locations.Placemark[0];
    var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
    two = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
    var marker = new GMarker(point);
    map.addOverlay(marker);
  }
} );
var gb = new GLatLngBounds( one, two );
map.setCenter( gb.getCenter(), map.getBoundsZoomLevel( gb ) );
0795nobodyさん2008/03/07(金) 20:14:08ID:???
上から順に実行される訳じゃないから
0796nobodyさん2008/03/08(土) 13:22:49ID:MdAlPFz+
>>757
馬鹿だなこいつ
これは完全に規約違反だよ。

URLリクエスト投げるだけでいいのに
わざわざPHPwrapするいみあるのか?
MAP画像をはくなバカ。重いだけだぞ。

実現のための手順だが、
画像を生成するための<img>タグにURLを吐くのが正解です。
PHPでやりたいなら要するにこうだ。
以下のような”テキスト”を吐くだけでいい。
<img src="http://maps.google.com/mapprint?tstyp=4&c=.....">
そうすると携帯から画像要求をGoogleに直接リクエストしてるから何の問題もない。
表示結果も同じだ。
マーカーもパラメータでついかできるしな。

今後はstaticmapのがいいのかもしれないな。
そのコードもなかで同じことやっとるけど。
PHPの出力がGoogleの画像名時点でアウト。重くしてどうすんだよ


まさにズボンはいてからパンツはいて逮捕されるようなソースコードですよ・・・

てか、こんなレベルのヤツがPHPの本出版てハライタス
0797nobodyさん2008/03/08(土) 17:46:50ID:???
>>796
恥を露呈しなくてもいいのに
0798nobodyさん2008/03/08(土) 20:02:26ID:???
PHPのプログラマに何かを期待するなんてハライタス
0799nobodyさん2008/03/08(土) 21:05:52ID:???
言語の特性も知らず 優劣を語るやからの方が笑える
0800nobodyさん2008/03/09(日) 03:21:38ID:???
Google、企業向けに「Google Maps API Premier」をリリース
http://www.itmedia.co.jp/enterprise/articles/0803/08/news008.html


「あんたのサイトはトラフィック多過だからプレミアにしてね」
と言われてしまう時代が到来するのか?
0801nobodyさん2008/03/10(月) 17:07:02ID:zx2D80AV
<div id="map" style="width: 500px; height: 300px;"></div>

<div onclick="hogehoge()">地図表示</div>
<div onclick="hugihugi()">地図表示2</div>

function hogehoge(){
var map = new GMap2(document.getElementById("map"));
map.addControl( new GLargeMapControl() );
map.setCenter(new GLatLng(123456789), 15); var point = new GLatLng(123456789);
map.addOverlay(new GMarker(point)); map.openInfoWindow(map.getCenter(), document.createTextNode("hogehoge"));}

function hugihugi(){
var map = new GMap2(document.getElementById("map"));
map.addControl( new GLargeMapControl() );
map.setCenter(new GLatLng(98765431), 15); var point = new GLatLng(98765431);
map.addOverlay(new GMarker(point)); map.openInfoWindow(map.getCenter(), document.createTextNode("hogehoge"));}

こんな感じでボタンを押すたびに別の地図を表示したいんですが、
実際にやるとメモリがとんでもなく消費されます(特にIE6)

これを回避するいい方法はないでしょうか?よろしくお願いします。
0802nobodyさん2008/03/10(月) 17:25:02ID:OSs1Oy0P
functionの外でvar mapしてもダメなの

>>794 どなたか分かりませんかね
0803nobodyさん2008/03/10(月) 20:29:12ID:???
>>794

>>795
0804nobodyさん2008/03/10(月) 21:20:09ID:???
APIの問題なのか、コードの問題なのか
切り分けから初めて、機能ごとに確認していくべき
0805nobodyさん2008/03/10(月) 21:30:21ID:???
var gb = new GLatLngBounds( one, two );
map.setCenter( gb.getCenter(), map.getBoundsZoomLevel( gb ) );
をそれぞれのelseに入れる
08067942008/03/10(月) 21:46:50ID:???
できました! ありがとうございます

でも何でデキて何でデキなかったのか全く分からないや orz
0807nobodyさん2008/03/10(月) 21:56:28ID:???

>>795
0808nobodyさん2008/03/10(月) 22:07:08ID:???
>>794 このコードが最終的な目的じゃないんですけど
もしかして
GClientGeocoder.getLocations
GLatLngBounds.extend
2つを共存させるには、どっか1点固定で指定しておかないとダメかしら
0809nobodyさん2008/03/11(火) 07:35:39ID:???
たとえば2件だったらその中間点が中心にくるのは当たり前

どっちかのgetLocationsしたポイントが真ん中に来て欲しいのなら
GLatLngBoundsはあくまで適切なzoomサイズの計算のためだけに使っておいて
最後にcenterだけ変更
0810nobodyさん2008/03/11(火) 10:45:41ID:83XDff5L
わかりにくくて、すみません
getLocationsで30個ほどマーカーを置きたいのですが
上から順番に動作するわけじゃない為
extendが上手く動いてないのかな
という意味です
0811nobodyさん2008/03/11(火) 18:13:59ID:???
>>810
グーグルマッパーの俺様がきましたよ。
とりあえずサイト見せてくれれば速攻みてあげるのですが。

これは処理のタイミングの問題だね。
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:???
>>811 のつづき

2. グローバル変数にカウンタを持たせる。
   (読み込み後、同一ファンクションを通過させて。必要数の処理を確認した後GLatLngBounds
   を実行する。)

などなど、やるかたはいろいろあるとおもうよ。
0813nobodyさん2008/03/11(火) 19:07:03ID:???
できたああああああああああああああああああああああああああ

いわゆるAjax的な動きが全く分かってませんでした (TдT)
本当にありがとうございました
0814nobodyさん2008/03/12(水) 15:22:59ID:???
いいってことよ。

>>796の件は
規約違反かどうかはわからないけど
ソースがうまくないのは確かだね。
0815nobodyさん2008/03/13(木) 17:28:34ID:+Hfx6OQJ
ポインターを200個ぐらい地図上に並べるのって、規約違反になったりしますか?

規約の
>ユーザーは、Google マップを本人またはその他の者が、多量の緯度経度の数値データをダウンロードやフィードするためのアクセスを得るような方法で利用してはなりません。

にひっかかるんでしょうか?
0816nobodyさん2008/03/13(木) 17:59:35ID:HYLpscVU
何をしたいのかよくわからないけど、
Google マップを本人またはその他の者が、多量の緯度経度の数値データを
ダウンロードやフィードするためのアクセスを得るような方法で利用しなければおk
0817nobodyさん2008/03/13(木) 23:40:49ID:???
>>815
本当に何を言いたいのかさっぱりわからんな
ポインターってマーカーの事だろか?
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マップでキーワード検索したときにA,B,Cと建物や店が出てくるけど、
このデータはGoogle Maps APIでは取れないですよね?
どこから取ってるんでしょう?
GeoCoderのAPIでアドレス検索 > 経緯度取得 > hotpperなどで経緯度周囲の店
検索とかはできるんですが・・・
0824nobodyさん2008/03/16(日) 15:57:21ID:???
ありゃGClientGeocoder#getLocations()でいいのかな・・・orz
0825nobodyさん2008/03/16(日) 16:37:28ID:???
再度自己レス。もっとちゃんと調べろや!と怒られそう。
GlocalSearchっていうGoogle Ajax Searchの方のAPI使えば、
経緯度周囲の情報が取れるんですね。
0826nobodyさん2008/03/17(月) 10:29:54ID:???
最近になってまた MAC + Safari 1.3.2 で GoogleMap(本家も駄目)を表示すると
ブラウザが落ちるようになったんですが、何か情報をお持ちの方いませんか?

参考:
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.

とのことです。
08288262008/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
08308292008/03/25(火) 19:57:10ID:ePll5l2q
URL間違えました。すみません・・・

http://www.openspc2.org/reibun/Google/Maps/API/ouyou/ver2/013/index.html
0831nobodyさん2008/03/25(火) 22:26:59ID:???
>>829
何がわからないかはっきり書けって。
丸投げか?
08328292008/03/26(水) 00:14:42ID:fPFMy6eV
>>831
言葉足らずで申し訳ありません。

やりたいこと:
>>830のソースを元とし、マーカーがクリックされたらcsvから読込まれた情報ウィンドウを表示したい

わからないこと:
GEvent.addListenerをどこに追加し、
csvのデータをmarker.openInfoWindowHtmlに渡す?その追加方法がわかりません.
08338292008/03/26(水) 00:17:10ID:fPFMy6eV
こんな感じだと思っているのですが、そこからがつまずいています。

function 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:???
>>833
変数がいきなり変わってたりして意味不明やけど、

map.addOverlay(new GMarker(gpObj));
こうすると追加したマーカーに対してイベントを設定できない。

marker = new GMarker(gpObj));
中略
GEvent.addListener(marker, "click"〜

合ってるかどうかは知らんけど、たぶんいける

08358292008/03/26(水) 19:03:16ID:+Zi/Ns8O
>>834
レスありがとうございます。

ご指摘いただいた箇所を修正しましたが、エラー表示が出てしまいました。
変更箇所が悪かったのでしょうか?

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:???
素人が見てもカッコが1個多そうだけど
0837nobodyさん2008/03/27(木) 12:23:57ID:x8Bfv0lr
Map上のコンビニとかファミレス情報は消せないのでしょうか?
0838nobodyさん2008/03/27(木) 16:27:29ID:???
>>836
これが本当の「かっこつけすぎ」。
08398292008/03/27(木) 23:43:16ID:MqTPnQ18
報告
>>650の方が同じようなことをやっていましたので参考にしました。

現在は情報ウィンドウが表示されるようになりました。
ありがとうございます。

次なのですが、情報ウィンドウが表示できたのですがCSVから読込みさせる方法でつまづいています。
どのように指定すればいいのでしょうか?
08408292008/03/27(木) 23:45:01ID:MqTPnQ18
現在のソース

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(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の列番号を指定);
}});}}
08418292008/03/27(木) 23:47:05ID:MqTPnQ18
var gpObj = new GLatLng(mx, my);

var 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:???
http://xoops.iko-ze.net/modules/gnavi/index.php?page=map

このサイトを携帯から見た場合、地図の表示範囲内にあるマーカーの一覧が下に表示されます。
携帯向けなのでJAVAスクリプト未使用のはず。

JAVAスクリプトを使わずにこのような表示をするにはどうしたら良いのでしょうか。
0845nobodyさん2008/04/09(水) 17:43:54ID:???
>>844
マーカーの場所はデータとして持っていて、
どの場所を地図上にマーキングするかをコントロールしているんだから
そのマーキングの名称やらをページ内に表示できることに何の不思議もないですよ。
0846nobodyさん2008/04/09(水) 19:00:22ID:???
>>845
なるほど。

地図の範囲内にマーカー座標が含まれている
↓
マーカー表示、およびマーカー情報を表示ということですよね。

その判別(絞込み)方法が知りたいのですが・・・
0847nobodyさん2008/04/09(水) 21:05:39ID:???
>>846
いや、そもそも>>844の地図とか、何やっても一緒じゃない?
全然動的じゃないような…
0848nobodyさん2008/04/09(水) 21:09:39ID:???
>>846
> 地図の範囲内にマーカー座標が含まれている
いや考え方が逆
地図の範囲内に含まれるポイントをマークする。
この違いは判りますよね?
0849nobodyさん2008/04/09(水) 21:36:21ID:???
>>848
はい、それについては判ってます。


>地図の範囲内に含まれるポイントをマークする

この場合PHPで処理するなら次のような感じですよね。

if(地図の範囲内にポイントが存在) {
マーカーの情報をデータベースから取り出して表示
}

どうやって地図の範囲を調べてるのか、そのロジックがわからないんです。
0850nobodyさん2008/04/10(木) 00:39:22ID:???
携帯で見れなかったから予想だけど、中心点の座標と縮尺さえわかれば、4辺の座標がわかるから、その範囲内の物をDBから引っ張るってことじゃなくて?
0851nobodyさん2008/04/10(木) 02:43:56ID:???
>>849
> どうやって地図の範囲を調べてるのか、そのロジックがわからないんです。
API見てこいボケ!そのまんまあるわ
0852nobodyさん2008/04/10(木) 04:41:32ID:???
>>851
探してみましたが見つかりませんでした。

Google Static Maps APIに関しては情報が少ないんで良く分からないんですよね。
とりあえずもうちょっと探してみます。
0853nobodyさん2008/04/10(木) 12:14:03ID:???
GMarker をクリックしたときに任意のコードを実行させるにはどうしたらいいですか。
var gmarker = new GMarker(new GLatLng(37.4419, -122.1419));
gmarker.onclick = function() { alert('clicked.'); }
としたけどだめでした。
こんな簡単な質問でごめんなさい。
0854nobodyさん2008/04/10(木) 22:47:34ID:???
>>844

そもそも 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:???
>>854
まだ携帯版は公開されてないんです。

とりあえず>>850さんの案で、自力計算から求めてみることにしました。
色々とコメントありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています