我正在使用新的Google地图v2模块在我的Android应用程序中显示地图。我正在做以下步骤。应用程序安装和工作正常。我面临的问题是视图中没有地图。
1)首先我已下载地图模块并放入以下文件夹。
/Users/fkamani/Library/Application\ Support/Titanium/modules/android/
2)在tiapp.xml文件中添加map模块。
<module platform="android">ti.map</module>
3)在tiapp.xml中添加以下android清单
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
<!-- Allows the API to download data from Google Map servers -->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- Allows the API to cache data -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Use GPS for device location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Use Wi-Fi or mobile connection for device location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- Allows the API to access Google web-based services -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- Specify OpenGL ES 2.0 as a requirement -->
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<!-- Replace com.domain.appid with your application ID -->
<uses-permission android:name="com.mycompanyname.myprojectname.permission.MAPS_RECEIVE"/>
<permission android:name="com.mycompanyname.myprojectname.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<application>
<!-- Replace "PASTE YOUR GOOGLE MAPS API KEY HERE" with the Google API key you obtained -->
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="My App key"/>
</application>
</manifest>
</android>
4)改变Titamium sdk版本。
<sdk-version>3.0.2.GA</sdk-version>
5)从钛文档中复制下面的代码并放入app.js文件
var MapModule = require('ti.map');
var win = Titanium.UI.createWindow();
var mountainView = MapModule.createAnnotation({
latitude:37.390749,
longitude:-122.081651,
title:"Appcelerator Headquarters",
subtitle:'Mountain View, CA',
pincolor:MapModule.ANNOTATION_RED,
myid:1 // Custom property to uniquely identify this annotation.
});
var mapview = MapModule.createView({
mapType: MapModule.NORMAL_TYPE,
region: {latitude:33.74511, longitude:-84.38993,
latitudeDelta:0.01, longitudeDelta:0.01},
animate:true,
regionFit:true,
userLocation:true,
annotations:[mountainView]
});
win.add(mapview);
// Handle click events on any annotations on this map.
mapview.addEventListener('click', function(evt) {
Ti.API.info("Annotation " + evt.title + " clicked, id: " + evt.annotation.myid);
});
win.open();
6)我创建了新的密钥库文件,并使用此密钥库文件创建分发版本。
7)为了创建谷歌地图API密钥,我在控制台中复制了SHA1证书指纹; com.mycompanyname.myprojectname。
应用程序已在我的Samsung S3设备中成功安装。当我运行应用程序时,它显示地图视图+, - 按钮进行缩放。唯一的问题是地图视图中没有地图。
答案 0 :(得分:2)
在移动设备上编译时检查您的Studio控制台,并查找:
[DEBUG] jarsigner -sigalg MD5withRSA -digestalg SHA1 -storepass ******* -keystore "YOUR_PATH_TO_KEYSTORE" -signedjar
如果密钥库位于“... / mobilesdk / osx / 3.0.2.GA / android / dev_keystore”中,则需要使用dev_keystore的SHA1证书创建google maps API密钥。
这对我有用。
答案 1 :(得分:0)
我注意到一个非常类似的问题。在我的应用程序中,我使用视图管理器在屏幕外加载内容,然后通过设置left属性设置屏幕上的视图动画。我可以让地图显示的唯一方法是,我还包括更改动画调用中的不透明度。我创建了一个小合金应用程序来说明。
index.js
function doClick(e) {
$.mapView.animate({left:0, opacity:1})
}
var map1 = MapModule.createView({
userLocation: true,
mapType: MapModule.NORMAL_TYPE,
animate: true,
region: {latitude: -33.87365, longitude: 151.20689, latitudeDelta: 0.1, longitudeDelta: 0.1 },
height: '100%',
top: 0,
left: 0,
width: '100%'
});
$.mapView.add(map1);
$.win.open();
INDEX.XML
<Alloy>
<Window class="container" id="win">
<Label onClick="doClick" height="100">Click HERE</Label>
<View id="mapView">
</View>
</Window>
</Alloy>
index.tss
".container": {
backgroundColor:"white"
},
"#mapView": {
top:0,
bottom:0,
opacity:1,
width:Ti.Platform.displayCaps.platformWidth,
left:Ti.Platform.displayCaps.platformWidth
}
如果您从动画调用中删除不透明度,则地图会像您所描述的那样显示为空白。
function doClick(e) {
$.mapView.animate({left:0})
}
这是一个似乎对我有用的肮脏技巧,虽然我很想知道为什么在动画调用中更改不透明度(只需添加$ .mapView.opacity = 1;不起作用)会使地图显示......
答案 2 :(得分:0)
我在Galaxy s3上遇到了同样的问题。对我来说解决方案是我将地图模块移动到了我的项目(modules / android / ti.map / 2.1.2),我的AndroidManifest.xml让我遇到了麻烦,当我删除它时,它完美无缺,有了它我也有同样的你做的问题。
希望这会有所帮助。另外,一个非常好的视频,其中一个人实际显示完整的设置(谢谢他很多!)可以在这里看到: http://www.youtube.com/watch?v=M4fUlqKWg7g