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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Google マップ

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

受付中

更新するとGoogleMapが表示されなくなる

Ryota000666
Ryota000666

総合スコア7

Google API

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Google マップ

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

0回答

0評価

0クリップ

4123閲覧

投稿2020/04/19 02:53

質問失礼いたします。
現在rails でポートフォリオ作成中です。

#【実装したいこと】
Google Mapを記事詳細ページで表示したい

#【詳細】
Google Mapを記事詳細ページで表示することはできたのですが、そのページを更新するとconsoleでエラーが出てGoogle Mapが表示されなくなります。
エラーの内容は

Uncaught ReferenceError: google is not defined at eval (eval at <anonymous> (infobox_packed.js:1), <anonymous>:1:1066) at infobox_packed.js:1 eval @ VM50170:1 (anonymous) @ infobox_packed.js:1

44:1 Uncaught (in promise) pd {message: "Map: Expected mapDiv of type Element but was passed null.", name: "InvalidValueError", stack: "Error↵ at new pd (https://maps.googleapis.com/m…4t136yIMuX6XJROiWOfKHmCBM&callback=initMap:141:75"}

と言うものです
その他にも

You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.

が出ることがあり
このページではAPIを一回しか読み込んでいないので、なぜこのエラーが出るのかも分かりません。
おそらく、更新によりAPIが二度読み込まれ、このようなことになっているのだと推測しましたが、改善方法が分かりません。
もし分かる方いましたら、ご回答いただけると幸いです。よろしくお願いいたします。

#エラーがでているページのhtml

show.html.erb

<div class="post-wrap"> <div class="post-image"> <% if @cafepost.image.url.nil? %> <%= image_tag 'noimage.png' %> <% else %> <%= image_tag @cafepost.image.url %> <% end %> </div> <div class="post-detail"> <div class="post-detail-left"> <div class="post-user-detail"> <%= image_tag @cafepost.user.image.thumb23.url %> <p><%= link_to @cafepost.user.name, @cafepost.user %></p> </div> <p class="post-time"> <%= @cafepost.updated_at.strftime("%Y/%m/%d") %> </p> <p class="post-postcode">〒<%= @cafepost.postcode %></p> <p class="post-address"> <%= @cafepost.address_all %> </p> </div> <div class="post-detail-right"> <p class="post-content"><%= @cafepost.content %></p> <% if @cafepost.wifi %> <p>wifiあります</p> <% end %> <% if @cafepost.power %> <p>コンセントあります</p> <% end %> </div> </div> <h2>コメント一覧</h2> <div>コメント<%= @comments.count %></div> <% @comments.each do |c| %> <div> <%= link_to c.user.name, user_path(c.user) %> <%= c.content %> <hr> </div> <% end %> <%= form_for [@cafepost, @comment] do |f| %> <%= f.text_field :content %> <%= f.hidden_field :cafepost_id, value: @cafepost.id %> <br> <%= f.submit 'コメントする' %> <% end %> </div> <script type="text/javascript"> function initMap() { var test = {lat: <%= @cafepost.latitude %>, lng: <%= @cafepost.longitude %>}; var map = new google.maps.Map(document.getElementById('map'), { zoom: 15, center: test }); var transitLayer = new google.maps.TransitLayer(); transitLayer.setMap(map); var contentHTML = '<p><%= @cafepost.title%></p><p>場所:<%= @cafepost.address_all %></p>'; var infowindow = new google.maps.InfoWindow({ content: contentHTML }); var marker = new google.maps.Marker({ position:test, map: map, title: contentHTML }); marker.addListener('click', function() { infowindow.open(map, marker); }); } </script> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=MyAPIKey=initMap"></script> <style type="text/css"> #map { height: 200px; width: 70%;} </style> <div id="map"></div>

APIの表示は伏せています。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Google API

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Google マップ

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