いつもお世話になっております。

Google Mapsを利用し、同マップ内でそれぞれのアイコンの表示・非表示を切り替えたいという要望を受けたのですが、やりかたがわからず途方に暮れています。

- 要望 -------------------------------------------
1.Google Maps内にカテゴリ1~6に属する、デザインがちがうアイコンをそれぞれ3つずつ表示。
2.このアイコンを、カテゴリ群ごとにボタンか何かで表示・非表示を切り替える。
--------------------------------------------------

[1]に関してはできたのですが、[2]のやり方がわかりませんでした。
代替案として、カテゴリごとにGoogle Mapsを読み込むhtmlを変えて
iframe内で表示するというのを出したのですが、
“同マップ上でアイコンだけ表示したり消したり”したいとの
ことでした。

[1]を実現するのに使用したコードが下記になります。
(※マーカーの関するスクリプトだけ外部ファイル化し、bodyにonloadでcreateMapを読み込んでいます)

-----------------------------------------------------
function createMap() {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GOverviewMapControl());
map.setCenter(new GLatLng(緯度, 経度), 13);

var icon = new GIcon();
icon.image = "marker.png";
icon.shadow = "shadow.png";
icon.iconSize = new GSize(20, 34);
icon.iconAnchor = new GPoint(10, 34);
icon.infoWindowAnchor = new GPoint(7, 1);

var icon2 = new GIcon();
icon2.image = "marker2.png";
icon2.shadow = "shadow.png";
icon2.iconSize = new GSize(20, 34);
icon2.iconAnchor = new GPoint(10, 34);
icon2.infoWindowAnchor = new GPoint(7, 1);

var point001 = new GLatLng(緯度, 経度);
var marker001 = new GMarker(point001, icon);
map.addOverlay(marker001);
GEvent.addListener(marker001, 'click', function() {
marker001.openInfoWindowHtml('<div style="width: 300px">吹き出し<\/div>');
});
var point002 = new GLatLng(緯度, 経度);
var marker002 = new GMarker(point002, icon2);
map.addOverlay(marker002);
GEvent.addListener(marker002, 'click', function() {
marker002.openInfoWindowHtml('<div style="width: 300px">吹き出し<\/div>');
});

}

---------------------------------------------- ここまで

方法について、ご存じの方がいらっしゃったら
教えていただきたいです。
よろしくお願いいたします!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

カテゴリ群に自分で分けて管理すればいいだけでしょう


var groupA = new Array;
groupA.push(icon1);
groupA.push(icon2);
とかやっておいて、適当なボタンのイベントにおいて
それらを非表示、表示とかすればいいだけです
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
JavaScript自体初心者なので上手にいってませんが、
参考にさせていただきます。

お礼日時:2009/05/28 08:56

GmapsUtiltyLibのMarkerManagerクラスが提供されています。


(本家のGMarkerManagerクラスとは別物)
http://code.google.com/p/gmaps-utility-library-d …
リファレンス
http://gmaps-utility-library.googlecode.com/svn/ …
これがつかえるにでは。
カテゴリー毎のマーカーを、それぞれ別のマーカーマネージャーに
追加し、マーカーマネージャー単位に表示・非表示する。
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだ上手くはいっていないのですが、参考にさせていただきます。

お礼日時:2009/05/28 08:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q頭痛薬は精神をおかしくしますか?

頭痛薬は精神をおかしくしますか?

23の女です。私は中学時代のある日に熱を出し、辛い思いをしました。それ以来頭痛薬や風邪薬を常備するようになりました。

時折ひどい頭痛薬に襲われるときがありますが、イライラしたときでもイブを飲むと、精神が安定します。
イライラの原因は、沢山ありますが駅や街中でカップルを見かけたときなど、私はこれまで彼氏と呼べる方がいたことが無いので、その焦り怒り自分のダメさを感じて頭に血が昇ります。
しかし頭痛薬を服用すると気持ちが安定します。

精神がおかしくなったのか、安らぎを無くしたこの世界に失望し、また服用しますが最近は脱力感を感じ、自分だけの心の楽園ができます。このような感覚を覚え、私は周囲の方と比べ異質な存在に思います。
少しでも健全な精神でいたい、そう願う私にとって頭痛薬や風邪薬は、精神安定剤のような存在です。

もしかして頭痛薬や風邪薬が精神をおかしくしてしまうように感じます。

頭痛薬や風邪薬は精神を破壊するのですか?

支離滅裂ですが、答えを知っている方いますか?

Aベストアンサー

薬でおかしくなったのではなく貴方の精神がもともと病んでいるのです。
頭痛薬や風邪薬を飲むと眠くなりますので、多少安定剤のような成分が含まれているのかもしれません。
睡眠欲というものは三大欲求の中でも一番強いそうなので、それにより他の感情が軽減され、逃避状態になっていることも考えられます。

ちゃんと心療内科か精神科に行った方がいいですよ。

Qgoogle map吹き出し

下記google mapをスマホで見ると吹き出しが頻繁に出たり消えたりして見づらいのですが
吹き出しは出しっぱなしでカウントダウンのみ動かす方法ありませんか。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<style type="text/css">
div#map-canvas { position: absolute; width: 100%; height: 100%; }
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">

var geocoder, map, marker, infoWindow;

function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(35.710058, 139.810718);
var mapDiv = document.getElementById('map-canvas');
var myOptions = {
center: latlng,
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(mapDiv, myOptions);

google.maps.event.addListener(map, 'click', function(e) {
marker = new google.maps.Marker({
position: e.latLng,
map: map,
draggable: true,
title: "Click Me!"
});
if(infoWindow) infoWindow.close();
infoWindow = new google.maps.InfoWindow();
var targetDate = Date.parse('2014/07/07 00:00:00');
setInterval ( function() {
var now = new Date().getTime();
var diff = targetDate - now;
var day = Math.floor ( diff / 86400000 );
diff -= day * 86400000;
var hour = Math.floor ( diff / 3600000 );
diff -= hour * 3600000;
var minute = Math.floor ( diff / 60000 );
diff -= minute * 60000;
var second = Math.floor ( diff / 1000 );

if(infoWindow) infoWindow.setContent ( '七夕まで' + day + '日' + hour + '時間' + minute + '分' + second + '秒' );
},1000);

infoWindow.open(map, marker);
map.setCenter(e.latLng);
});
};

google.maps.event.addDomListener(window, 'load', initialize);

</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>

下記google mapをスマホで見ると吹き出しが頻繁に出たり消えたりして見づらいのですが
吹き出しは出しっぱなしでカウントダウンのみ動かす方法ありませんか。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<style type="text/css">
div#map-canvas { position: absolute; width: 100%; height: 100%; }
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/jav...続きを読む

Aベストアンサー

infoWindow.setContent()を利用して書き込むと、ちらついてしまうようですね。

google.mapの処理を追いかけてはいませんが、どうやら要素そのものを作成し直しているのか、一時非表示にして処理をしているのかわかりませんが、さらに、一旦スクリプトの処理が開放されているかして起こっているのではないでしょうか?


ご提示のコードでは、一つだけのinfoWindowを利用しているようですので、初期設定でcontent内に<div>や<span>などを作成しておいて、内容を書換える際は、google.mapのメソッドを利用せずに、直接その要素の内容を修正するようにすればちらつきは出なくなるようです。

ごく簡単なスクリプトでPCで確認しましたが、スマホでは確認していません。
(多分いけるのではないかと)

Q子供が「頭痛いから頭痛薬を飲みたい。」と言うのですが、市販の頭痛薬を飲

子供が「頭痛いから頭痛薬を飲みたい。」と言うのですが、市販の頭痛薬を飲ませていいですか?

高2の長男は試験前になると
「足が痛い」「腕が痛い」「ひじが痛い」「捻挫した」など言い緊張する性格です。
今日は「頭が痛いから頭痛薬を飲みたい」と言っています。
お医者さんへ行ってみてもらうのは嫌で、市販の頭痛薬を飲みたいと言っています。
近くのドラックストアで買って飲ませてもいいでしょうか?

Aベストアンサー

片栗粉を薬として飲ませてみては、直る事があります。所謂偽薬です。
バッファリンなら子供向けがありますよ。

緊張を直す方法は、心の入れ替えで、「大丈夫」と自分の心にしょちゅうつぶやかせます。
絶対に疑わないのがコツです

QGoogle Maps API V3

Google Maps API V3 でXMLのデータがかなり多いので
XMLから取り出すデータをgoogleマップで表示するデータのみ
取り出してマーカを表示したい場合どのようにすればいいのでしょうか

Aベストアンサー

前のご質問に似ていますが、こちらのほうが簡単かと思います。

mapが表示されている状態であれば、
 map.getBounds();
で表示領域の境界を取得できます。

これを利用して、各マーカーの緯度・経度がその間にあればマーカーを表示処理、それ以外はスキップするというようにすればよろしいかと。

Q頭痛薬を飲むと眠気が取れる?

「頭痛薬を飲むと眠気が取れる」
という、私の気のせいかも知れない疑問に
どなたかお答えくださいませんか?
というのは、あるときなんとなく頭が痛くてしかも
眠気がかなり襲ってきたとき、頭痛薬を飲むと
いつの間にか眠気もなくなっていたのです。
気のせいかと思っていたのですが、それから
何度か、頭痛薬を飲むたび、眠気がすっきり
するのです。
だからどうということもないのですが、
もしこれが医学的に正しいのなら、眠いとき
頭痛薬を飲んじゃおうかと思ったりします。
どなたかよろしくお願いします。

Aベストアンサー

こんばんわ。
眠気もなくなったというのは、その頭痛薬に
無水カフェインという物質が入っていませんでしたか?眠気覚ましにカフェインといいますよね?
カフェインには、鎮痛解熱作用があるので頭痛薬には入っています。そのせいだと思いますが気のせいの
レベルだと思います。
また、頭痛薬を多く服用すると胃を荒らすので
絶対によくありません。また、私は頭痛もちですが
頭痛薬を飲みすぎると起こる頭痛があることも知っています。からだのために、お薬は必要最低限がいいと思っています。あくまでもご参考程度になさってください。

Qgoogle maps 吹き出しカウントダウン

google maps api v3の情報ウィンドウの吹き出しの表示に、
添付画像のようなカウントダウンを表示したいのですが、
自分のレベルでは吹き出しに文字を表示することしかできません。
どなたか吹き出しの表示に添付画像のようなカウントダウンを表示する方法
知りませんでしょうか。

Aベストアンサー

こんにちは。

以下のような感じになると思います。
以下のスクリプトの場合、markerStartというマーカーを選択するとinfoWindow1が開きます。
setIntervalを利用して1秒ごとにinfoWindow1のcontent(内容)を再表示しています。


var infoWindow1 = new google.maps.InfoWindow ({
content: '',
positon: centerLatLng
});
google.maps.event.addListener ( markerStart, 'click', function() {
infoWindow1.open ( map, markerStart );
});

// きもとなるのは以下の部分
var targetDate = Date.parse('2013/07/07 00:00:00');
window.setInterval ( function() {
var now = new Date().getTime();
var diff = targetDate - now;
var day = Math.floor ( diff / 86400000 );
diff -= day * 86400000;
var hour = Math.floor ( diff / 3600000 );
diff -= hour * 3600000;
var minute = Math.floor ( diff / 60000 );
diff -= minute * 60000;
var second = Math.floor ( diff / 1000 );
// google.maps.InfoWindow#setContentで内容を設定する
infoWindow1.setContent ( '七夕まで' + day + '日' + hour + '時間' + minute + '分' + second + '秒' );
},1000);

こんにちは。

以下のような感じになると思います。
以下のスクリプトの場合、markerStartというマーカーを選択するとinfoWindow1が開きます。
setIntervalを利用して1秒ごとにinfoWindow1のcontent(内容)を再表示しています。


var infoWindow1 = new google.maps.InfoWindow ({
content: '',
positon: centerLatLng
});
google.maps.event.addListener ( markerStart, 'click', function() {
infoWindow1.open ( map, markerStart );
});

// きもとなるのは以下の部分
var targetDate = Date.parse('2013/07/...続きを読む

Q市販の頭痛薬

市販の頭痛薬

頭痛と肩こりがするので市販の頭痛薬を飲みました。
でもあまり効きません。

あまり時間を空けずにさらに飲むのはよくないでしょうか?
もしそうしても効かないんでしょうか?

痛いのでなんとかしたいです(泣)

Aベストアンサー

頭痛は辛いですよね。お気持ちお察し致します。

他の頭痛持ちの方の質問・回答が以下のURLにありますので、ご参考にどうぞ。

http://soudan1.biglobe.ne.jp/qa387089.html

上記の回答の繰り返しになりますが、頭痛薬(鎮痛薬)は対処療法です。また、これらの薬はその作用上の問題から胃に負担がかかります。ですので、ある程度の間隔を開ける必要があるのです。

肩こりがすると書かれておりますので、緊張性の頭痛と考えられます。デパス等の筋緊張緩和作用のあるマイナートランキライザーを医師に処方してもらってはどうでしょうか?
(貴方の頭痛には他の原因があるかも知れません。素人判断は危険ですのであまりに頭痛が続くようなら医師の判断を仰ぐのが良いかと思います。)

漫然と頭痛薬を常用すると、「薬物乱用頭痛」を引き起こしかねません。こうなっては本末転倒です。

緊急対策として対処療法である頭痛薬を用いるのは止む終えないとして、根本的な原因を治癒しなければ、治療になりません。

少々お説教くさくなってしまいました。早く良くなると良いですね。

参考URL:http://www.sukkirin.com/contents/01_5.htm

頭痛は辛いですよね。お気持ちお察し致します。

他の頭痛持ちの方の質問・回答が以下のURLにありますので、ご参考にどうぞ。

http://soudan1.biglobe.ne.jp/qa387089.html

上記の回答の繰り返しになりますが、頭痛薬(鎮痛薬)は対処療法です。また、これらの薬はその作用上の問題から胃に負担がかかります。ですので、ある程度の間隔を開ける必要があるのです。

肩こりがすると書かれておりますので、緊張性の頭痛と考えられます。デパス等の筋緊張緩和作用のあるマイナートランキライザーを医師に処方してもら...続きを読む

Qgoogle maps api v3のルート検索

google maps api v3のルート検索でA,Bマーカーでなく、
オリジナルのマーカーにてドラッグ&ドロップマウスで移動可能なルート検索を
javascriptで作るやり方が知りたいです。

Aベストアンサー

ちょっと面白そうだったので、かなりいい加減ですが作ってみました。
とは言っても、ほとんど A No2様の回答そのままなので、説明は省略です。

独自マーカーは回答欄のコードだと表示しにくいので、googleさんのchart iconを利用して、これまたテキトーです。
参考にもならないかも知れませんが…
(マーカーのアニメーションが無い方が良さそうですが、draggableにすると、なってしまうみたい)

(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script>
</head>
<body>

<div id='map' style='width:800px; height:600px;'></div>

<script type="text/javascript">
(function(){

//地図表示
var mapDisp = function(lat, lng, id){
 return new google.maps.Map(document.getElementById(id), {
  zoom: 13,
  center: new google.maps.LatLng(lat, lng),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  scaleControl: true,
  scrollwheel: false
 });
}

//マーカー作成(仮マーカー)
var createMarker = function(lat, lng, mark){
 var icon = {
  anchor: {x:0, y:37},
  url: "http://chart.apis.google.com/chart?chst=d_bubble_icon_text_small_withshadow&chld=glyphish_walk|bb|" + mark + "|000000"
 }
 var marker = new google.maps.Marker({
  position: new google.maps.LatLng(lat, lng),
  map: map,
  draggable: true,
  icon: icon
 });
 google.maps.event.addDomListener(marker, 'dragend', route);
 return marker;
}

//経路検索
var route = function(){
 var request = {
  origin: start.getPosition(),
  destination: goal.getPosition(),
  travelMode: google.maps.DirectionsTravelMode.DRIVING
 };
 directS.route(request, function(response, status){
  if (status == google.maps.DirectionsStatus.OK){
   directDisp.setDirections( response );
  }
 });
}


var map = mapDisp(35.68, 139.75, "map");
var directS = new google.maps.DirectionsService();
var directDisp = new google.maps.DirectionsRenderer();
directDisp.setMap(map);
directDisp.setOptions({markerOptions: { visible:false }});

var start = createMarker(35.71, 139.76, "%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88|00CCFF");
var goal = createMarker(35.65, 139.76, "%E3%82%B4%E3%83%BC%E3%83%AB|88FF00");

})();
</script>
</body>
</html>

ちょっと面白そうだったので、かなりいい加減ですが作ってみました。
とは言っても、ほとんど A No2様の回答そのままなので、説明は省略です。

独自マーカーは回答欄のコードだと表示しにくいので、googleさんのchart iconを利用して、これまたテキトーです。
参考にもならないかも知れませんが…
(マーカーのアニメーションが無い方が良さそうですが、draggableにすると、なってしまうみたい)

(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sampl...続きを読む

Q頭痛薬を毎日飲むとおかしくなる?

頭痛薬を毎日飲んでいますが、頭痛薬を飲みすぎることで頭痛が酷くなったり、精神的におかしくなる事ってあるんでしょうか?

旦那が仕事のストレスもあるとは思うのですが、毎日頭痛薬を飲んでいます。毎日飲んでいるせいか、目の下に真っ黒なクマができています。

頭が痛いせいで仕事(デスクワーク)が思うようにいかないみたいですし、それがきっかけか精神的に落ち込んでしまって、、、。

聞けば市販薬の頭痛薬の服用量を超えて、1日に多い時は15錠くらい飲んでいるみたいなんです。でも薬は体にあまりよくないと聞きます。

旦那のためにいろいろ調べてみますが、「薬を飲む」「ストレスをためない」「マッサージをする」「精神的なケアが必要」など、どれが正しい情報かわからなくなってきました。

まず一つずつ整理するために、教えてください。頭痛薬が頭痛を酷くすることってありますか?また心にも影響を与えるものでしょうか?

頭痛が良くなる方法があれば教えてください。お願いします。

Aベストアンサー

痛み止めを毎日のように服薬すると、頭痛を誘発することがあるというのは非常に有名な事実です。
軽いものであれば我慢することも必要ですが、その頭痛の種類や原因をきちんと把握することで予防的な薬を使えたり、生活する上での注意点が分かります。

文面からは、受診したほうがよい頻度・レベルに思えます。
頭痛外来が一番いいです。

痛み止めを多量に服薬すると、腎障害や肝障害を起こすことがあります。生命維持に必要な臓器ですから、このままにしておくのは危ないと思います。ちなみに、医療用のセデスGが販売中止になったのは、旦那さんのように頻繁な服薬で腎障害が後を絶たなかったためです。

QGoogle Mapsを利用して屋根の面積を求たい

どなたかご協力頂ければ幸いです。
GoogleのAPIを利用して自宅の屋根の面積を
求めたいのですが、方向性ややり方をご存じの
方いらっしゃればご教示願えれば幸いです。

多少の英語はわかりますので、英語ページの
参照などもまったくダメというわけではありません。

サンプルコードなどあればとても助かります。


どちらかというと営業畑の人間ですが
エクリプス3.7とアンドロイドSDKの開発環境は
用意しています。

ここが参考になるのかと思ってますが
途中からFlashに切り替わり、ロジックがわからないのです。

http://www.smart-house.bz/shindan/

また、面積も算出できません。


なんとか、面積を算出したいので、お分かりになるかた
いらっしゃればどうか、教えてください。

(自宅の設計図面がないので.....)

Aベストアンサー

#1~#3です。

>緯度・経度を取得するロジックを検討いたします
#1の回答から、何度も触れているように、google mapは緯度・経度を軸に作成されていると思われます。
それなので、イベントを取得すれば、そのまま緯度・経度を取得できるようになっています。
http://code.google.com/intl/ja/apis/maps/documentation/javascript/reference.html#MouseEvent

もう一度、最初から順にゆっくり読み直していただければ、私の言いたいことが通じるかもしれません。


人気Q&Aランキング

おすすめ情報