Cordova 3.x 实用插件(1) -- Google地图Maps

插件地址:[url=https://github.com/wf9a5m75/phonegap-googlemaps-plugin/]https://github.com/wf9a5m75/phonegap-googlemaps-plugin/[/url]

[b](1)创建工程[/b]
[quote]cordova create HelloMap com.rensanning.cordova HelloMap
cd HelloMap
cordova platform add android[/quote]

[b](2)创建Google Play Services的lib[/b]
[quote]cd D:\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib
android update lib-project -p . -t 1
ant clean[/quote]

[b](3)链接Google Play Services[/b]
[quote]cd E:\projects\HelloMap
cd platforms/android/
android update project -p . -l ../../../google-play-services_lib[/quote]
[color=red]-l 只能使用相对路径,所以先要把google-play-services_lib拷贝到和HelloMap同一目录下。[/color]

链接成功后project.properties文件中:
[quote]android.library.reference.2=../../../google-play-services_lib[/quote]

[b](4)获取fingerpring[/b]
[quote]keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android[/quote]

[b](5)获取API Key[/b]
进入[url=https://code.google.com/apis/console/]Google APIs Console[/url]
打开APIs & auth > APIs 把 Google Maps Android API v2的状态设置成ON。
进入APIs & auth > Credentials > CREATE NEW KEY > Android Key > 输入SHA1码+“;”+包名 > Create > 获取API Key。
[img]http://dl2.iteye.com/upload/attachment/0095/0106/ecc3e4e9-5d3d-36ea-8405-736bee030528.png[/img]

[b](6)安装phonegap-googlemaps-plugin[/b]
下载[url=https://github.com/wf9a5m75/phonegap-googlemaps-plugin/archive/master.zip]https://github.com/wf9a5m75/phonegap-googlemaps-plugin/archive/master.zip[/url]
[quote]cordova plugin add E:\plugins\phonegap-googlemaps-plugin-master --variable API_KEY_FOR_ANDROID=<上边的APIKEY> --variable API_KEY_FOR_IOS=<任意字符>[/quote]

[b](7)修改index.html[/b]
<button id="button" onclick="openGoogleMap();">Init a map</button>
<script type="text/javascript">
function openGoogleMap() {
var map = plugin.google.maps.Map.getMap();
map.addEventListener(plugin.google.maps.event.MAP_READY, function(map) {
map.showDialog();
});
}
</script>


[b](8)编译执行[/b]
[quote]cordova build android
cordova emulate[/quote]
[img]http://dl2.iteye.com/upload/attachment/0095/0108/4eb8447f-3100-3edb-9a10-b67374310da0.png[/img]

小米等一些国内厂商手机上默认没有Google Play Services,所以会出错:
[quote]java.lang.NoClassDefFoundError: com.google.android.gms.R$string[/quote]
需要先上国内的其他应用商店里下载Google Play Services。

[b](9)其他用法[/b]
<button id="button" onclick="openGoogleMap2();">Init a map</button>
<script type="text/javascript">
function openGoogleMap2() {
var GOOGLE = new plugin.google.maps.LatLng(39.905841, 116.391596);
var map = plugin.google.maps.Map.getMap();
map.addEventListener(plugin.google.maps.event.MAP_READY, function(map) {
map.showDialog();
map.addMarker({
'position': GOOGLE,
'title': ["Hello Google Map", "for", "Cordova!"].join("\n"),
'snippet': "This plugin is awesome!"
}, function(marker) {
map.animateCamera({
'target': GOOGLE,
'zoom': 15
}, function() {
marker.showInfoWindow();
});
});
});
}
</script>

[img]http://dl2.iteye.com/upload/attachment/0095/0110/7786368c-49c0-34e6-b2ce-73e3de95869c.png[/img]

[b]标记[/b]
map.addMarker({
"position": GOOGLE,
"title": "Hello GoogleMap for Cordova!"
});


[b]Flat标记[/b]
map.addMarker({
'position': GOOGLE,
'flat': true
});


[b]获取标记(回调函数)[/b]
map.addMarker({
"position": GOOGLE,
"title": "Hello GoogleMap for Cordova!"
}, function(marker) {
marker.showInfoWindow();
});


[b]替换标记图标[/b]
map.addMarker({
'position': GOOGLE,
'title': 'Google!'
'icon': 'www/images/google_icon.png'
});
map.addMarker({
'position': GOOGLE,
'title': 'Google!',
'icon': {
'url': 'www/images/google_icon.png',
'size': {
'width': 74,
'height': 126
}
}
});


[b]HTML5/Canvas动态标记[/b]
var canvas = document.getElementById("canvas");
map.addMarker({
'position': GOOGLE,
'title': canvas.toDataURL(),
'icon': "data:image/png;base64,iVBORw0KGgoA...",
}, function(marker) {
marker.showInfoWindow();
});


[b]标记事件[/b]
map.addMarker({
'position': GOOGLE,
"title": "Hello Google Maps"
}, function(marker) {
marker.addEventListener(plugin.google.maps.event.MARKER_CLICK, function() {
alert("Marker Click");
marker.showInfoWindow();
});
marker.addEventListener(plugin.google.maps.event.INFO_CLICK, function() {
alert("Info Window Click");
marker.remove();
});
});


[b]标记拖拽[/b]
map.addMarker({
'position': GOOGLE,
'draggable': true
});

map.addMarker({
'position': GOOGLE
}, function(marker) {
marker.setDraggable(true);
});


[b]拖拽事件[/b]
map.addMarker({
'position': GOOGLE,
'draggable': true
}, function(marker) {
marker.addEventListener(plugin.google.maps.event.MARKER_DRAG_END, function(marker) {
marker.getPosition(function(latLng) {
marker.setTitle(latLng.toUrlValue());
marker.showInfoWindow();
});
});
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百度地图定位Cordova插件,支持Android,IOS 可以在此地址查看example 基于百度地图Android版定位SDK(v7.1)以及百度地图IOS SDK (v3.2.1) 一,申请Android及IOS版密钥 申请密钥Android定位SDK 每一个AndroidManifest.xml 中的package属性 对应一个AK,不可混用 iOS SDK开发密钥 每一个Bundle Identifier 对应一个AK,不可混用 二,安装插件```` cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="" --variable IOS_KEY="" //此处的API_KEY_XX来自于第一步,直接替换,也可以最后跟 --save 参数,将插件信息保存到config.xml中 //如果只需要Android端或者IOS端,可以只填写一个相应的AK,但是都不填肯定不行 三,使用方法 // 进行定位 baidumap_location.getCurrentPosition(function (result) {     console.log(JSON.stringify(result, null, 4)); }, function (error) { }); 获得定位信息,返回JSON格式数据: {     "time": "2017-02-25 17:30:00",//获取时间     "latitude": 34.6666666,//纬度     "lontitude": 117.8888,//经度     "radius": 61.9999999,//半径     //--------Android 独享 begin     "locType": 161,//定位类型                                                 "locTypeDescription": "NetWork location successful!",//定位类型解释        "userIndoorState": 1,//是否室内                                          //--------Android 独享 end     //--------IOS 独享 begin     "title": "我的位置",//定位标注点标题信息     "subtitle": "我的位置",//定位标注点子标题信息     //--------IOS 独享 end } 具体字段内容请参照: Android版 BDLocation v7.1 IOS版 BMKUserLocation 如果Android版获取到的信息是: {     "locType": 505,     "locTypeDescription": "NetWork location failed because baidu location service check the key is unlegal, please check the key in AndroidManifest.xml !",     "latitude": 5e-324,     "lontitude": 5e-324,     "radius": 0,     "userIndoorState": -1,     "direction": -1 } 说明Key有问题,可以检查下生成的AndroidManifest.xml文件里面是否有如下信息                                                           如果没有,说明插件使用不当,尝试重新安装,如果有这些信息,说明Key与当前程序AndroidManifest.xml 中的package名不一致,请检查Key的申请信息是否正确 四,查看当前安装了哪些插件 cordova plugin ls 五,删除本插件 cordova plugin rm cordova-plugin-baidumaplocation 标签:cordova
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值