(РЕДАКТИРОВАТЬ: Когда вы используете простой API Карт Google с AngularJS Material, проблема та же.)
Когда я одновременно использую в моем приложении AngularJS:
Карты не работают должным образом на мобильных устройствах (на рабочем столе это нормально) - проблема с сенсорными жестами. Пример:
https://incampo.pl/map2.html - (тест на мобильном телефоне!)
, но когда я не использую материал:
angular.module("incampoApp", ["ngMap"])
вместо:
angular.module("incampoApp", ["ngMap", "ngMaterial"])
работает правильно: https://incampo.pl/map.html - (тест на мобильном телефоне!)
Весь мой пример кода (JS скомпилирован из машинописи):
<!DOCTYPE html> <html ng-app="incampoApp"> <head> </head> <body ng-controller="offerController as vm"> <div map-lazy-load="https://maps.googleapis.com/maps/api/js?key=AIzaSyAyufiB6xUh1SzM7LK2NniXGDPyY__KtP8&callback=initMap"> <ng-map id="map" min-zoom="2" zoom="6" center="52.2,19"></ng-map> </div> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.4/angular.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.4/angular-animate.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.4/angular-aria.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.4/angular-messages.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.10/angular-material.min.js"></script> <script src="//rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.min.js"></script> <script> var IncampoApp; (function (IncampoApp) { var OfferController = (function () { function OfferController(ngMap) { ngMap.getMap(); } OfferController.$inject = ["NgMap"]; return OfferController; }()); IncampoApp.OfferController = OfferController; })(IncampoApp || (IncampoApp = {})); </script> <script> var IncampoApp; (function (IncampoApp) { angular.module("incampoApp", ["ngMap", "ngMaterial"]).controller("offerController", IncampoApp.OfferController); })(IncampoApp || (IncampoApp = {})); </script> </body> </html>
Doу тебя есть идеи почему?
Я нашел решение здесь: https://github.com/angular/material/issues/11205
Вам просто нужно вызвать $ mdGestureProvider.skipClickHijack ();
angular.module('myapp', ['ngMaterial', 'ngMessages']) .config(function($mdGestureProvider) { // For mobile devices without jQuery loaded, do not // intercept click events during the capture phase. $mdGestureProvider.skipClickHijack(); });
Попробуйте это:
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3652.6095451920282!2d90.38946702923724!3d23.72563358206513!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3755b8dd3d3673e7%3A0xf999f4771c24183e!2sInstitute+of+AppropriateTechnology!5e0!3m2!1sen!2sbd!4v1519796378399" width="100%" height="450" frameborder="0" style="border: 0"></iframe>
Это решение может помочь вам, если вам нужна простая карта в html без (ключ карты Google). Вставить карту Google с помощью iframe