我有一个可以拉起来的滑块,然后它会显示一张地图.我可以上下移动滑块来隐藏或显示地图.当地图在前面时,我可以处理该地图上的触摸事件.每当我触摸时,a AsyncTask会被启动,它会下载一些数据并生成一个Toast显示数据的数据.虽然我在触摸事件上启动任务但是没有显示吐司,直到我关闭滑块.当滑块关闭并且不再显示地图时,会Toast出现.
有任何想法吗?
好了开始任务
编辑:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并onPostExecute祝酒
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
在新的TestTask(this),这是一个参考,MapOverlay而不是MapActivity,所以这是问题.
我需要在android中使用mapview控件,我似乎无法理解如何运行keytool.是用Eclipse安装的吗?我似乎找不到下载链接.
谢谢
我在我的Android应用程序中使用谷歌地图.我已经创建了密钥并在清单文件中添加了必要的权限.但很快我启动应用程序,我在调试器中收到此消息:
GoogleService初始化失败,状态:10,缺少预期资源:'R.string.google_app_id'用于初始化Google服务.可能的原因是缺少google-services.json或com.google.gms.google-services gradle插件.
我不确定什么是错的.地图工作正常,我可以毫无问题地使用它.我的gradle文件有这个条目:
编译'com.google.android.gms:play-services:8.4.0'
什么是抱怨,我该如何缓解它?
我已经忙了很长时间了解如何在HelloMapView中在地图上的两个(GPS)点之间画一条线,但没有运气.
有人可以告诉我该怎么做.
假设我使用扩展MapView的HelloMapView.我需要使用叠加层吗?如果是这样,我必须重写覆盖的onDraw()方法并在这里画一条线?我实际上尝试过这些东西,但没有结果.
先感谢您!
我正在测试适用于Android的新Google Maps API V2,并在应用启动时收到此消息:

这是在4.1模拟器上运行.
这是我的AndroidManifest.xml档案:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Require OpenGL ES version 2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="##myapikey##"/>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
文件MainActivity.java:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) android google-maps android-mapview google-maps-android-api-2
我可以解析kml文件以显示Android中的路径或点吗?请你能帮助我吗?
这是kml示例代码,我想在android谷歌地图中显示:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Paths</name>
<description>Examples of paths. Note that the tessellate tag is by default
set to 0. If you want to create tessellated lines, they must be authored
(or edited) directly in KML.</description>
<Style id="yellowLineGreenPoly">
<LineStyle>
<color>7f00ffff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Placemark>
<name>Absolute Extruded</name>
<description>Transparent green wall with yellow outlines</description>
<styleUrl>#yellowLineGreenPoly</styleUrl>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<coordinates> -112.2550785337791,36.07954952145647,2357
-112.2549277039738,36.08117083492122,2357
-112.2552505069063,36.08260761307279,2357
-112.2564540158376,36.08395660588506,2357
-112.2580238976449,36.08511401044813,2357
-112.2595218489022,36.08584355239394,2357
-112.2608216347552,36.08612634548589,2357
-112.262073428656,36.08626019085147,2357
-112.2633204928495,36.08621519860091,2357
-112.2644963846444,36.08627897945274,2357
-112.2656969554589,36.08649599090644,2357
</coordinates>
<LineString>
</Placemark>
</Document>
</kml> …Run Code Online (Sandbox Code Playgroud) 我正在使用新的Android Google Maps API.
我创建了一个包含MapFragment的活动.在活动中,onResume我将标记设置为GoogleMap对象,然后为地图定义包含所有标记的边界框.
这是使用以下伪代码:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
while(data) {
LatLng latlng = getPosition();
builder.include(latlng);
}
CameraUpdate cameraUpdate = CameraUpdateFactory
.newLatLngBounds(builder.build(), 10);
map.moveCamera(cameraUpdate);
Run Code Online (Sandbox Code Playgroud)
调用map.moveCamera()导致我的应用程序崩溃与以下堆栈:
Caused by: java.lang.IllegalStateException:
Map size should not be 0. Most likely, layout has not yet
at maps.am.r.b(Unknown Source)
at maps.y.q.a(Unknown Source)
at maps.y.au.a(Unknown Source)
at maps.y.ae.moveCamera(Unknown Source)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub
.onTransact(IGoogleMapDelegate.java:83)
at android.os.Binder.transact(Binder.java:310)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a
.moveCamera(Unknown Source)
at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
at ShowMapActivity.drawMapMarkers(ShowMapActivity.java:91)
at ShowMapActivity.onResume(ShowMapActivity.java:58)
at android.app.Instrumentation
.callActivityOnResume(Instrumentation.java:1185)
at …Run Code Online (Sandbox Code Playgroud) 从地图中删除标记的唯一方法是明确的.但是它会从地图中清除所有标记.
我想只删除单个标记或一组标记.
我怎么能实现这个目标?
android google-maps android-mapview google-maps-android-api-2
有没有人设法ItemizedOverlays在Android Beta 0.9中使用?我不能让它工作,但我不确定我是否做错了或者这个功能还没有.
我一直在尝试使用ItemizedOverlay和OverlayItem类.它们的目的是模拟地图标记(如Google Maps Mashups中所示),但我遇到了让它们出现在地图上的问题.
我可以使用类似的技术添加自己的自定义叠加层,它只是ItemizedOverlays不起作用.
一旦我实现了我自己的ItemizedOverlay(并重写了createItem),创建我的类的新实例似乎工作(我可以从中提取OverlayItems),但将其添加到地图的叠加列表并不会使它显示为应该.
这是我用来将createItem类作为Overlay 添加到我的代码的代码OverlayItems.
// Add the ItemizedOverlay to the Map
private void addItemizedOverlay() {
Resources r = getResources();
MapView mapView = (MapView)findViewById(R.id.mymapview);
List<Overlay> overlays = mapView.getOverlays();
MyItemizedOverlay markers = new MyItemizedOverlay(r.getDrawable(R.drawable.icon));
overlays.add(markers);
OverlayItem oi = markers.getItem(0);
markers.setFocus(oi);
mapView.postInvalidate();
}
Run Code Online (Sandbox Code Playgroud)
在哪里Overlay定义为:
public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
public MyItemizedOverlay(Drawable defaultMarker) {
super(defaultMarker);
populate();
}
@Override
protected OverlayItem createItem(int …Run Code Online (Sandbox Code Playgroud) 我有一个新的MapFragments ScrollView.实际上它是一个SupportMapFragment,但无论如何.它有效,但有两个问题:
滚动时,会留下黑色面具.黑色完全覆盖了地图所在的区域,除了+/-缩放按钮所在的孔.见下面的截图.这是在Android 4.0上.
requestDisallowInterceptTouchEvent()当用户与地图交互以防止ScrollView拦截触摸时,视图不会使用,因此如果您尝试在地图中垂直平移,则只会滚动包含ScrollView.理论上我可以派生一个视图类MapView并添加该功能,但是如何才能MapFragment使用我的自定义MapView而不是标准的?

android-mapview ×10
android ×9
google-maps ×6
java ×2
overlay ×2
draw ×1
eclipse ×1
keytool ×1
kml ×1
toast ×1