幾乎每個APP都會有地圖 所以在這裏記錄一下

1.在index.html 中

     <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB16sGmIekuGIvYOfNoW9T44377IU2d2Es&sensor=true"></script>

     <!-- cordova script (this will be a 404 during development) -->
<script src="lib/ionic/js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>

2. CSS

 map {
display: block;
width: 100%;
height: 100%;
}
.scroll {
height: 100%;
}

3. 生成一個指令

 .directive('map', function() {
return {
restrict: 'E',
scope: {
onCreate: '&'
},
link: function ($scope, $element, $attr) {
function initialize() {
var mylang=new google.maps.LatLng(43.07493, -89.381388);
var mapOptions = {
center: mylang,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map($element[0], mapOptions);
//Marker + infowindow + angularjs compiled ng-click
var marker = new google.maps.Marker({
position: mylang,
map: map,
title: 'Uluru (Ayers Rock)'
});
var infowindow = new google.maps.InfoWindow({
content:"Hello World!"
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
$scope.onCreate({map: map}); //Stop the side bar from dragging when mousedown / tapdown on the map
google.maps.event.addDomListener($element[0], 'mousedown', function (e) {
e.preventDefault();
return false;
});
} if (document.readyState === "complete") {
initialize();
} else {
google.maps.event.addDomListener(window, 'load', initialize);
}
}
}
});

4.在index.html 中寫入 map 標籤  <map on-create="mapCreated(map)"></map>

5.設置控制器

 .controller('MapCtrl', function($scope, $ionicLoading, $cordovaGeolocation) {
$scope.mapCreated = function(map) {
$scope.map = map;
}; $scope.centerOnMe = function() {
console.log("Centering");
if (!$scope.map) {
return;
} $scope.loading = $ionicLoading.show({
content: 'Getting current location...',
showBackdrop: false
});
$cordovaGeolocation
.getCurrentPosition()
.then(function(pos) {
var lat = pos.coords.latitude
var long = pos.coords.longitude
console.log('Got pos', pos);
$scope.map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude));//
var marker=new google.maps.Marker({
map: $scope.map,
position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)
});//這個marker 設置了一下
$scope.loading.hide();
}, function(err) {
// error
});
// navigator.geolocation.getCurrentPosition(function (pos) {
// console.log('Got pos', pos);
// $scope.map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude));
// var marker=new google.maps.Marker({
// map: $scope.map,
// position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)
// });
// $scope.loading.hide();
// }, function (error) {
// alert('Unable to get location: ' + error.message);
// });
};
});

6. 忘記了...為了更加的準確 還是添加了ngcordova plugin 插件

  cordova plugin add org.apache.cordova.geolocation 

不要忘記了注入 ngCordova  $cordovaGeolocation

ionic ngcordova map 地圖的更多相关文章

  1. ionic ngcordova camera

    拍照是經常用到的,所以記錄一下 拍照的代碼... 1. ionic start camera blankcd camera ionic platform add ios 2. 添加插件,這裏很熟悉.. ...

  2. ionic ngCordova插件安装

    ngCordova的安装配置 官网提供了两种安装的方法: 1. 使用bower来安装 2. 下载zip文件 推荐使用bower安装,在使用bower之前,我们电脑中需要先配置bower.bower的配 ...

  3. ionic ngcordova barcodescanner

    二維碼掃描  最近有一個項目用到了 二維碼的掃描  總結一下 記錄一下 1.  ionic platform add ios 2. 添加插件 cordova plugin add https://gi ...

  4. ionic使用方法

    windows下安装配置 npm install -g ionic npm install -g cordova ionic start myproject cd myproject ionic pl ...

  5. ionic实现双击返回键退出功能

    实现这个功能需要四个步骤: 步骤一: 说明:因为需要和手机的硬件(返回按钮)打交道,而ionic本身是不具备该功能的,但是有一个东西可以:ng-cordova插件,这个插件是phoneGap为了能让i ...

  6. Ionic开发实战

    转自:http://blog.csdn.net/i348018533/article/details/47258449/ 折磨的两个月!Ionic从零单排,到项目发布!遇到了很多问题但都一一解决了,此 ...

  7. 170多个Ionic Framework学习资源(转载)

    在Ionic官网找到的学习资源:http://blog.ionic.io/learning-ionic-in-your-living-room/ 网上的文章比较多,但是很多时候我们很难找到自己需要的. ...

  8. ionic 通过下载apk升级App

    上篇通过更新文件升级APP,如果遇到了比如更新插件之类的问题,上篇是无法解决的,所以为了解决这个问题,需要下载apk文件升级APP.   1.配置文件如下:{'appVersion':'1.0.0', ...

  9. ionic cordova social media sharing plugin

    https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin.git 从上面的连接下载 插件 1.肯定是要加入 下面的那个文件的吖 从 ...

随机推荐

  1. Tomcat远程调试catalina.sh的配置

    #!/bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license ...

  2. Flink on Yarn运行机制

    从图中可以看出,Yarn的客户端需要获取hadoop的配置信息,连接Yarn的ResourceManager.所以要有设置有 YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOO ...

  3. DG_Oracle DataGuard Primary/Standby物理主备节点安装实践(案例)

    2014-09-09 Created By BaoXinjian

  4. IGS_学习笔记07_IREP通过页面测试客户化Web Service调用(案例)

    20150819 Created By BaoXinjian

  5. JAVA 匿名对象

    /* 匿名对象: 没有名字的对象 匿名对象的使用方式之一: 当对对象方法只调用一次时,我们可以用匿名对象来完成,比较简化. 匿名对象的使用方式之二: 匿名对象可以被当做实参传递 */ class Ca ...

  6. 后台接受ajax传递值的实例代码

    后台接受ajax传递值的实例代码: 使用ajax可以实现无刷新数据交互,下面是一段后台代码接收ajax传递值的实例代码供需要的朋友参考,希望能够带来帮助. ajax代码如下: $(function ( ...

  7. ubuntu网络配置相关知识(转载)

    From:http://os.51cto.com/art/201003/188055.htm 文章主要介绍Ubuntu网络配置,希望能让Linux新手学习参考.更好使用Ubuntu.更有效的学习Ubu ...

  8. minicom的安装及使用

    1.下载 sudo apt-get install minicom 2.运行 sudo minicom -s 3.修改端口 首先查看端口:ls /dev/tty...

  9. .NET单元测试

    原文链接:http://www.cnblogs.com/edisonchou/p/5467573.html

  10. MYSQL C API : mysql_init()

    MYSQL * mysql_init(MYSQL *mysql); // 初始化一个MYSQL 连接的实例对象 void mysql_close(MYSQL *sock); // 释放一个MYSQL ...