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

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

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

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

Google マップ

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

Q&A

解決済

1回答

924閲覧

Google Map APIで中心位置をfitBoundsで取得したい

igaiga

総合スコア144

Google API

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

Google マップ

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

0グッド

0クリップ

投稿2018/03/03 09:28

現状は、center: new google.maps.LatLng(,)で中心を指定していますが、fitBoundsで自動的に中心が来るように変更したいです。

以下のように変更しましたが、うまく動作しないのでアドバイス頂ければ幸いです。
もともと緯度経度を配列にしてなかったのでとりあえずテストで動けば・・・ということで変更後は雑に配列作っています。
よろしくお願いいたします。

変更前のソースコード

<script src="https://maps.googleapis.com/maps/api/js?key="></script> <script> var point; var marker; var map; var infowindow = new google.maps.InfoWindow(); var gmarkers = []; var i = 0; function inicializar() { // 初期設定 var option = { zoom: 11, // 中心座標 center: new google.maps.LatLng(35.552541, 139.577393), // タイプ (ROADMAP・SATELLITE・TERRAIN・HYBRIDから選択) mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map"), option); google.maps.event.addListener(map, "click", function() {infowindow.close();}); point = new google.maps.LatLng(35.464997222222,139.47198611111); marker = create_maker(point,"大和第2"); point = new google.maps.LatLng(35.438441666667,139.47273611111); marker = create_maker(point,"上和田"); point = new google.maps.LatLng(35.463586111111,139.47116111111); marker = create_maker(point,"大和大塚戸"); } function create_maker(latlng, html) { // マーカーを生成 var marker = new google.maps.Marker({position: latlng, map: map}); // マーカーをクリックした時の処理 google.maps.event.addListener(marker, "click", function() { infowindow.setContent(html); infowindow.open(map, marker); }); gmarkers[i] = marker; i++; return marker; } function map_click(i) { google.maps.event.trigger(gmarkers[i], "click"); } google.maps.event.addDomListener(window, "load", inicializar); </script> <div id="map" style="height:400px;margin-bottom:20px;"></div>

変更後のソースコード

<script src="https://maps.googleapis.com/maps/api/js?key="></script> <script> var point; var point2;  //★★★追加した箇所 var marker; var map; var infowindow = new google.maps.InfoWindow(); var gmarkers = []; var i = 0; var bounds = new google.maps.LatLngBounds(); //★★★追加した箇所 function inicializar() { // 初期設定 var option = { zoom: 11, // 中心座標 center: new google.maps.LatLng(35.552541, 139.577393), // タイプ (ROADMAP・SATELLITE・TERRAIN・HYBRIDから選択) mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map"), option); google.maps.event.addListener(map, "click", function() {infowindow.close();}); point = new google.maps.LatLng(35.464997222222,139.47198611111); point2[] = new google.maps.LatLng(35.464997222222,139.47198611111);  //★★★追加した箇所 marker = create_maker(point,"大和第2"); point = new google.maps.LatLng(35.438441666667,139.47273611111); point2[] = new google.maps.LatLng(35.438441666667,139.47273611111);  //★★★追加した箇所 marker = create_maker(point,"上和田"); point = new google.maps.LatLng(35.463586111111,139.47116111111); point2[] = new google.maps.LatLng(35.463586111111,139.47116111111);  //★★★追加した箇所 marker = create_maker(point,"大和大塚戸"); bounds.extend(point2);  //★★★追加した箇所 } function create_maker(latlng, html) { // マーカーを生成 var marker = new google.maps.Marker({position: latlng, map: map}); // マーカーをクリックした時の処理 google.maps.event.addListener(marker, "click", function() { infowindow.setContent(html); infowindow.open(map, marker); }); gmarkers[i] = marker; i++; return marker; } function map_click(i) { google.maps.event.trigger(gmarkers[i], "click"); } google.maps.event.addDomListener(window, "load", inicializar); map.fitBounds(bounds);  //★★★追加した箇所 </script> <div id="map" style="height:400px;margin-bottom:20px;"></div>

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

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

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

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

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

kei344

2018/03/04 02:42

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。http://eng-entrance.com/javascript-display-error
igaiga

2018/03/05 02:49

エラー見直したら解決しました。ありがとうございました。
guest

回答1

0

自己解決

変更前のソースコードから以下のように変更して表示できるようになりました。

変更後のソースコード

<script src="https://maps.googleapis.com/maps/api/js?key="></script> <script> var point; var marker; var map; var infowindow = new google.maps.InfoWindow(); var gmarkers = []; var i = 0; var bounds = new google.maps.LatLngBounds(); //★★★追加した箇所 function inicializar() { // 初期設定 var option = { zoom: 11, // 中心座標 center: new google.maps.LatLng(35.552541, 139.577393), // タイプ (ROADMAP・SATELLITE・TERRAIN・HYBRIDから選択) mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map"), option); google.maps.event.addListener(map, "click", function() {infowindow.close();}); point = new google.maps.LatLng(35.464997222222,139.47198611111); bounds.extend(point); marker = create_maker(point,"大和第2");   //★★★追加した箇所 point = new google.maps.LatLng(35.438441666667,139.47273611111); bounds.extend(point); marker = create_maker(point,"上和田");   //★★★追加した箇所 point = new google.maps.LatLng(35.463586111111,139.47116111111); bounds.extend(point);   //★★★追加した箇所 marker = create_maker(point,"大和大塚戸"); map.fitBounds(bounds);   //★★★追加した箇所 map.panToBounds(bounds);   //★★★追加した箇所 } function create_maker(latlng, html) { // マーカーを生成 var marker = new google.maps.Marker({position: latlng, map: map}); // マーカーをクリックした時の処理 google.maps.event.addListener(marker, "click", function() { infowindow.setContent(html); infowindow.open(map, marker); }); gmarkers[i] = marker; i++; return marker; } function map_click(i) { google.maps.event.trigger(gmarkers[i], "click"); } google.maps.event.addDomListener(window, "load", inicializar); </script> <div id="map" style="height:400px;margin-bottom:20px;"></div>

投稿2018/03/05 02:48

igaiga

総合スコア144

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問