* サーバー側は、小松氏のこれをbloga.jp:80へ置いてあります。
* クライアント側はWS処理をjQueryプラグイン化してみました。これです。
* ちなみに、このDemoサンプルは、下記5行でローカルでも別ドメインでもどこにでも設置出来ます。
<script src="http://bloga.jp/ws/jq/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="http://bloga.jp/ws/jq/js/jquery.ws-0.3-noenc-pre.js" type="text/javascript" charset="utf-8"></script>
<script src="http://bloga.jp/ws/jq/conn/wschatdemo0.3.js" type="text/javascript"></script>
<script>/*サポートしてない時のalertメッセージを抑止*/$.ws.wsSetup({nonosupportmsg:true});</script>
<div id="wsdemos"></div>
【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いです。実験用ですので、カオス(混沌)をあえて意図したりもしますので、標準やValidとは無縁だったりしますが、何卒、ご了承ください ( _ _ b
【info】
最近はTwitterでぶつぶつ言ってることが多いです。
>http://twitter.com/toshirot
Google Mapsが今月からデフォルトでv2になるということなので、v1コードが動くかどうかを、とりあえず簡単に試してみました。
明示的にv2として動作させる方法は、下記のようにコードの中で「v=1」となっている部分を「v=2」と書換えます。
<!-- 下記キーは、必ず自分専用のものをhttp://www.google.com/apis/maps/で取得して使ってください -->
<script src="http://maps.google.com/maps?file=api&v=1&key=xxxx.." type="text/javascript"></script>
v1をv2へ対応させるには二つの道筋があります。
一つは、v2環境となっても、今まで通りv1の「GMapクラス」を使い続ける方法で、99%互換させますとGoogleは言っています。が、コードによって、多少デバッグは必要となります。特に、隠れ機能を利用していたものは、ばっさり切ったらしいので影響はあるかも。
もう一つは、v2の新しい「GMap2クラス」を利用して新しい機能を使う方法です。
とりあえず『入門Ajax』で作ったサンプル群がv1ベースですので、これのAPI URLのクエリへ「v=2」を追加してそのままv2環境での「GMapクラス」の動作を試す、という方法でチェックしました。
『入門Ajax』のサンプルで問題のあったものは、下記の2箇所で、これ以外は問題なく動作しました。
1:: _SATELLITE_TYPEなどの古い形式の地図タイプは、正式な、頭に「G_」を付けた形式しか許してくれなくなりました。
例:
× map.setMapType(_SATELLITE_TYPE) ;//許してくれなくなった言い回し
↓
○ map.setMapType(G_SATELLITE_TYPE) ;//v2でも使えるv1の言い回し
↓
◎ map.setMapType(G_SATELLITE_MAP) ;//v2での言い回し
「入門Ajax」の該当修正サンプル03-26
http://jsgt.org/ajax/newmon/samples/chapter03v2/03-26/sample.htm
(もともと、/03-26/test_G_SATELLITE_TYPE.htmという名前でおいてあったコードです。この03-26以外のサンプルでは、「G_...」なタイプを使っていますので大丈夫です。)
で、正式には、v2では、マップタイプは以下のようになります。
v1 G_MAP_TYPE
v2 G_NORMAL_MAP
v1 G_SATELLITE_TYPE
v2 G_SATELLITE_MAP
v1 G_HYBRID_TYPE
v2 G_HYBRID_MAP
2:: xslは、safariでうまく動作しないため、サポートされなくなりました。
「入門Ajax」の該当v2修正サンプル03-29(こちらはエラーになります)
http://jsgt.org/ajax/newmon/samples/chapter03v2/03-29/sample.htm
(2006.5.9現在v=1は機能していますので下記の「v=1」と明示しているサンプルでは動作しています。が、いつ終了するかは不明です。)
http://jsgt.org/ajax/newmon/samples/chapter03/03-29/sample.htm
#Googleは、この件について、「必要なら、Safariの機能を再生させたければ、Googleのオープンソース AJAXSLTライブラリを使えます」と言っています。
*参考までに、『入門Ajax』のダウンロードサンプルには、chapter03内サンプルの「v1」をすべて「v2」に書換えたホルダ「chapter03v2」を用意してあります。
こんにちは。いつも記事を参考にさせてもらっています。
実はGoogle Maps API v2 を使用したスクリプトがうまく動作しなくて困っています。もしよかったらアドバイスをもらえないでしょうか?(以前Googleグループにも投稿したのですが解決できなくて、こちらに質問させてもらいました)
地図表示部分の下にボタンを配置して、そのボタンをクリックすると、設定された緯度・経度に中心点を移動するようなことをしたいと考えています。作成したスクリプトを実行すると地図は表示されるのですが、ボタンをクリックするとスクリプトエラーとなってしまいます。panTo メソッドを使っているのですが、使い方を間違えているのでしょうか?Javascript の勉強を始めたばかりで根本的な間違いをしてしまっているかもしれませんが、お手を煩わせてしまうことをご容赦ください。
-------- 抜粋 --------
<meta http-equiv="content-script-type" content="text/javascript">
<title>sample</title>
<script src="http://maps.google.com/maps?file=api&v=2&key= ...." type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
var defaultLatitude = 47.159840;
var defaultLongitude = 17.578125;
var defaultZoomLv = 3;
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(defaultLatitude, defaultLongitude), defaultZoomLv);
function moveCenter(lat, lng) {
map.panTo(new GLatLng(lat, lng));
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 600px; height:400px;"></div>
<form>
<input type="button" value="移動" onClick="moveCenter(38.754083,-9.140625)">
</form>
</body>
</html>
-------- ここまで --------
すいません、先ほどソースをそのまま貼り付けてしまいました。あと、確認環境はWindows XP SP2 + IE6 です。
...
<script type="text/javascript">
//<![CDATA[
function load() {
var defaultLatitude = 47.159840;
var defaultLongitude = 17.578125;
var defaultZoomLv = 3;
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(defaultLatitude, defaultLongitude), defaultZoomLv);
function moveCenter(lat, lng) {
map.panTo(new GLatLng(lat, lng));
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 600px; height:400px;"></div>
<form>
<input type="button" value="移動" onClick="moveCenter(38.754083,-9.140625)">
</form>
</body>
こんにちは。
関数moveCenterが関数loadの中にあるので onClickからアクセスできないのではないかと思います。
いろいろな方法はありますが、オブジェクト指向的には、たとえば、
this.moveCenter = function (lat, lng) {
map.panTo(new GLatLng(lat, lng));
}
のように、moveCenter をthisで明示的にloadクラスのメンバーとして書いておいてから、
<body onload="a = new load()">
などの方法でloadのインスタンスをつくり、
その後、そのインスタンス(ここではa)へアクセスする、
たとえば、
onClick="a.moveCenter(38.754083,-9.140625)"
こんな感じでどうでしょう?
試したものを、ここへおいておきました。
http://jsgt.org/mt/01/maps/test37886.htm
ただ、もちろんこのloadクラスでそのまま良のかかどうかは、、、です。
高橋 ( 2006年05月11日 17:06 )すでにある map に追加する方法も作って見ました。
map.moveCenter = function (lat, lng) {
map.panTo(new GLatLng(lat, lng));
}
return map;
こうしておいて、
<body onload="a=load()">
こうしてから、こう
onClick="a.moveCenter(38.754083,-9.140625)"
サンプル
http://jsgt.org/mt/01/maps/test37886-2.htm
あと、mapをグローバルにしても良ければ、もっと簡単です。
サンプル
http://jsgt.org/mt/01/maps/test37886-3.htm
こんにちは。
早速のご回答ありがとうございます。
しかも3つもサンプルをいただけると、それぞれを比較できるのでとても参考になりますいろんな書き方ができるのですね。
やっぱりオブジェクト指向的な考え方がよく分かっていなかったため、指摘してもらったようなミスをしてしまったようです。勉強になります。
map をグローバル変数にする3番目が扱いやすいように思いましたので、この方法で引き続き書いていきたいと思います。
改めてありがとうございました。
maribon ( 2006年08月16日 16:59 )GXsltはサファリでのみサポートされないと思っていたのですが、バージョン2の移行で他のブラウザでも使えないみたいなので覗かせてもらいました。
他のブラウザ(IE,OPERA,FireFox等)でもAJAXSLTライブラリを使えばいいということなのでしょうか?
バージョン1に戻せば動くんですが、いつ終わるかわからないので対処に困っております。
はじめまして、可能かどうか教えて頂きたいのですが・・・
実は仕事で地図上に多角形を描画し指定の色で透過させると言うのがあるのですが、Google Mapsの存在を知りこれで対応出来ないか色々しらべております。Google Mapsを最近知ったばかりでほとんど無知に近い状態です。そこで教えて頂きたい件が2件ほどあります。
1.多角形図形の描画&塗り潰しは出来るのでしょうか?
2.時間経過と共に塗り潰し色を変化させてりするのは可能でしょうか?
申し訳ありませんがご教示いただけないでしょうか?
宜しくお願いします。

視力回復手術は銀座スポーツクリニック
![]()
アスリートが選ぶレーシックは、銀座スポーツクリニック
夏休みのかみさんとまりもの帰省用にちょっと調査中---
≪国内格安航空券≫出張・帰省・旅行に最適
全国どこでも出発!国内格安航空券
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |




