質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

1回答

2148閲覧

Google Map API ズームレベルによってマーカーを表示(or非表示)したい

退会済みユーザー

退会済みユーザー

総合スコア0

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

1クリップ

投稿2019/01/17 04:31

編集2019/01/17 16:35

ズームレベルによってマーカーを表示(or非表示)したいのですが、動きません。
というのも、ズームする前からマーカーは出たままになってしまいます。(/ズームレベルによってマーカーを表示/非表示させたいです/と書いてあるところ以下が機能していないのだと思います。)

/ズームレベルによってマーカーを表示/非表示させたいです/以下のところで、zoomが8以上ならマーカー表示する、それ以外ならマーカーを非表示にするということをやりたかったのですが、このコードでは機能しませんでした。加えて、エラーは出ていないのでどこをどうすればよいのかが分からない状態です。

やりたいこととしては下記の通りです。
ズームレベルが8より大きい時:マーカーを表示
スーむレベルが8より小さい時:マーカーを非表示

JavaScript

1var map; 2var mar = []; 3var place =[ 4 { 5 name:"place1", 6 lat:33.595345, 7 lng:130.362194 8 },{ 9 name:"place2", 10 lat:35.768454, 11 lng:139.420514 12 },{ 13 name:"place3", 14 lat:38.257237, 15 lng:140.902725 16 },{ 17 name:"place4", 18 lat:34.669250, 19 lng:135.476129 20 },{ 21 name:"place5", 22 lat:43.015745, 23 lng:141.409821 24 },{ 25 name:"place6", 26 lat:35.645314, 27 lng:140.031111 28 },{ 29 name:"place7", 30 lat:34.391842, 31 lng:132.484578 32 },{ 33 name:"place8", 34 lat:34.721265, 35 lng:135.361585 36 },{ 37 name:"place9", 38 lat:35.443276, 39 lng:139.640077 40 },{ 41 name:"place10", 42 lat:35.705584, 43 lng:139.751854 44 },{ 45 name:"place11", 46 lat:35.186434, 47 lng:136.946832 48 },{ 49 name:"place12", 50 lat:35.673736, 51 lng:139.716558 52 } 53]; 54 55function initMap() { 56 var latlng = new google.maps.LatLng({lat: place[0]["lat"], lng: place[0]["lng"]}); 57 58 var opt = { 59 zoom: 5, 60 center: place[2], 61 mapTypeId: google.maps.MapTypeId.ROADMAP 62 }; 63 64 65 map = new google.maps.Map(document.getElementById('map'), opt); 66 var marker = new google.maps.Marker({ 67 position: latlng, 68 map: map 69 }); 70 for (var i = 0; i < place.length; i++) { 71 latlng = new google.maps.LatLng({lat: place[i]['lat'], lng: place[i]['lng']}); 72 mar[i] = new google.maps.Marker({ 73 position: latlng, 74 map: map, 75 }); 76 77/*ズームレベルによってマーカーを表示/非表示させたいです*/ 78 mar[i].addListener("zoom_changed", function() { 79 var zoom = map.getZoom(); 80 if (zoom < 8 ) { 81 mar.setVisible( false ) ; 82 } else { 83 mar.setVisible( true ) ; 84 } 85 }); 86 87} 88}

どこを直せば、指定したズーム値より大きくなった時マーカーが表示されるようになるかをご教示いただけますと幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/01/17 06:24

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
退会済みユーザー

退会済みユーザー

2019/01/17 07:48

ご指摘ありがとうございます...!
guest

回答1

0

zoom_changedは Marker ではなく Map に起こるイベントなので、Mapを監視するようにしましょう。

  1. マーカー作成を関数化する
  2. マーカー削除も用意する
  3. 関数initMapとマップのzoom_changedイベント時にズームレベルを確認してから

マーカー削除/マーカー作成を行う

【Marker  |  Maps JavaScript API  |  Google Developers】
https://developers.google.com/maps/documentation/javascript/reference/marker

【Maps  |  Maps JavaScript API  |  Google Developers】
https://developers.google.com/maps/documentation/javascript/reference/map

投稿2019/01/17 09:15

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/17 12:00

回答ありがとうございます!! 色々やってみたのですが、自分では分からない点があるので質問させていただきます。 マーカー作成を関数化するというのはfor文のところでしょうか? 3の部分ももう少し詳しく教えていただけると幸いです。
kei344

2019/01/17 12:42

> for文のところでしょうか? そうですね。 完成形を一気に目指さず、まず「ボタンを押したらマーカーを一気に作成」「ボタンを押したらマーカーを一気に削除」から始めることをお勧めします。
退会済みユーザー

退会済みユーザー

2019/01/17 13:35

了解いたしました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問