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

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

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

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

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

1123閲覧

GoogleMapsAPIのマーカークリックでAngularJSとの連携ができない

bi_tsu

総合スコア35

Google API

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

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2018/06/05 02:49

編集2018/06/05 02:55

前提・実現したいこと

monacaを用いてアプリケーションを作成しています。
また、そのなかでOnsenUI,AngularJSを使用しています。

ある地点の座標を含めた情報を取得し、GoogleMapsAPIを利用して
地図上に、画像をマーカーとして表示させています。
そのマーカーをクリックした際に表示されるウィンドウの情報をクリックすると
地点の詳細ページに飛ぶような処理を行いたいです。

以前使用していた場合は<a>タグで飛ばしていたのですが
その方法だとAngularJSでの値が引き継げなくなってしまいました。
どうすれば意図する動きになるのか、また記述しているコードで
考え方が間違っているような箇所はございますでしょうか。

発生している問題

吹き出し内のHTMLにng-clickを入力してもコントローラーの処理が起動しません。
onclickにしてコントローラー外にfunctionを記入すると動くのですが
AngularJSで利用している値を使いたいのでなんとかコントローラー内の処理を起動したいです。

試したこと

このウインドウの中のHTMLがコントローラーと無関係な位置にあるせいでこうなっているのかと思ったので
中にng-controllerを記入してみましたが変わりませんでした。

完全に別のところに書かれたものであり、データを連結させることは難しいのでしょうか。
CSSが機能しているので同じように連携できるのではと考えてはいるのですが、、、。

javascript

1//吹き出しの追加 2infoWindow = new google.maps.InfoWindow({ 3 content: '<div ng-controller="AppController as app"><div class="infoWindowClass" ng-click="hogehoge()">' + '吹き出しに表示する内容' + '</div></div>' 4});

該当のソースコード

javascript

1ons.bootstrap().controller('AppController', ['$scope', function($scope){ 2 //地図の表示 3 $scope.displayMap= function(){ 4 //地図表示 5 var map = new google.maps.Map( 6 document.getElementById('map'), 7 { 8 center: (new google.maps.LatLng(00.0000, 000.0000)), 9 zoom: 18, 10 streetViewControl: false, 11 mapTypeControl: false, 12 fullscreenControl: false, 13 zoomControl: true, 14 zoomControlOptions: false, 15 styles: [{ 16 featureType: 'poi.business', 17 stylers: [{visibility: 'off'}] 18 }] 19 } 20 ); 21 22 //マーカーの設置 23 markerLatLng = {lat:00.0000, lng:000.0000}; 24 marker = new google.maps.Marker({ 25 position: markerLatLng, 26 map: map, 27 icon: new google.maps.MarkerImage( 28 'images/path', 29 new google.maps.Size(50, 50), 30 new google.maps.Point(0, 0), 31 new google.maps.Point(25, 50), 32 new google.maps.Size(50, 50) 33 ), 34 }); 35 36 //吹き出しの追加 37 infoWindow = new google.maps.InfoWindow({ 38 content: '<div class="infoWindowClass" ng-click="hogehoge()">' + '吹き出しに表示する内容' + '</div>' 39 }); 40 41 //クリックイベントの追加 42 marker.addListener('click', function(){ 43 infoWindow.open(map,marker); 44 }); 45 } 46 47 $scope.hogehoge = function(){ 48 //クリックされた際の処理を入力。 49 } 50}]);

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

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

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

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

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

guest

回答1

0

自己解決

二度タップした場合のようなフラグを用意し、
二度目のタップ判定でng-clickに入れたかった処理を行うことで解決をさせました。

投稿2018/06/20 07:29

bi_tsu

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問