我在地图视图上工作.我想将叠加项放在地图视图上.覆盖项目全部取决于当前显示的地图视图和缩放级别.如何获取当前地图视图的四个角的经度和纬度以及如何分析其中的多少叠加项.我们还要检查缩放级别.任何想法?怎么做?
我试图在一些嵌套元素中创建一个MapView(目前没有任何叠加).它基本上就像是ScrollView -> RelativeLayout -> RelativeLayout -> MapView
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="420px"
android:layout_height="300px"
android:clickable="false"
android:apiKey="key"/>
Run Code Online (Sandbox Code Playgroud)
对我来说似乎很好.在启动时我没有更多的事情,但它总是会导致以下情况:
04-04 13:38:33.910: WARN/dalvikvm(13628): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): FATAL EXCEPTION: main
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): java.lang.OutOfMemoryError
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android_maps_conflict_avoidance.com.google.googlenav.map.Map.resize(Map.java:1368)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android_maps_conflict_avoidance.com.google.googlenav.map.Map.resize(Map.java:1337)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at com.google.android.maps.MapView.onMeasure(MapView.java:590)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.view.View.measure(View.java:8313)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.view.View.measure(View.java:8313)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
04-04 13:38:33.996: ERROR/AndroidRuntime(13628): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) …Run Code Online (Sandbox Code Playgroud) 我目前正通过循环向地图添加注释......但注释仅出现在我的地图上.此外,在加载时,地图上实际上只显示了大约4个注释...但是当我稍微移动地图时,突然出现所有应该存在的注释.
如何在正确的位置加载所有注释,一次一个?
提前致谢!
这是我用来添加注释的代码:
NSString *incident;
for (incident in weekFeed) {
NSString *finalCoordinates = [[NSString alloc] initWithFormat:@"%@", [incident valueForKey:@"coordinates"]];
NSArray *coordinatesArray = [finalCoordinates componentsSeparatedByString:@","];
latcoord = (@"%@", [coordinatesArray objectAtIndex:0]);
longcoord = (@"%@", [coordinatesArray objectAtIndex:1]);
// Final Logs
NSLog(@"Coordinates in NSString: [%@] - [%@]", latcoord, longcoord);
CLLocationCoordinate2D coord;
coord.latitude = [latcoord doubleValue];
coord.longitude = [longcoord doubleValue];
DisplayMap *ann = [[DisplayMap alloc] init];
ann.title = [NSString stringWithFormat: @"%@", [incident valueForKey:@"incident_type"]];
ann.subtitle = [NSString stringWithFormat: @"%@", [incident valueForKey:@"note"]];
ann.coordinate = coord;
[mapView addAnnotation:ann]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试调试为什么我无法MapView在调试模式下工作,似乎应用程序没有使用debug.keystore我创建API密钥的文件进行签名.debug.keystore在我的系统上命名的文件的唯一版本是在C:\Users\<user>\.android预期的文件夹中,但是在完全删除此文件然后重建未签名的应用程序后,它仍然以调试模式运行,并且不会重新生成此文件,就像它使用不同的签名一样证书.知道这里发生了什么吗?
谢谢!
我试图MapView在Android中覆盖我自己的自定义图像.重要的是我的图像与底层Google地图图块正确对齐,因为它是大学校园的地图,其功能必须与Google的底层图块功能一致.Google是否为给定的地理矩形提供的图块总是大小(以像素为单位),与显示密度无关,或Google是否为更高/更低的显示密度设备传输更高或更低分辨率的图块?
我知道在静态地图Javascript API中有一个scale参数,可以解析它以返回更高分辨率的tile.我很好奇Android MapView是否也能够返回更高/更低分辨率的磁贴.如果MapView确实以不同的分辨率返回切片,无论如何都要以编程方式找到这个分辨率是什么,所以我可以相应地缩放我自己的叠加图像?
我需要使用Android的MapView 绘制形状,就像使用谷歌地图上的自定义地图创建的形状一样.
换句话说,如果我在地图上绘制一个形状,当我缩小它时它应该缩小,覆盖地图的相同区域,而不管缩放级别如何.
Android参考之后的示例:
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
Paint boxPaint = new Paint();
boxPaint.setColor(android.graphics.Color.WHITE);
boxPaint.setStyle(Paint.Style.FILL);
boxPaint.setAlpha(140);
canvas.drawCircle(screenPts.x, screenPts.y, 20, boxPaint);
return true;
}
Run Code Online (Sandbox Code Playgroud)
这会在地图上显示一个白色圆圈,但如果缩小,则圆圈大小相同.也许使用帆布是不正确的方法?
我需要谷歌地图如何突出社区或城市:
有任何想法吗?提前致谢!
android google-maps android-maps android-canvas android-mapview
我有一个地图,我想要缓存 - 在用户在地图上访问的每个地方(这是一个矩形区域) - 我检查我是否有一个驻留在这个矩形的叠加缓存.
为了改善缓存(所以如果用户以前在同一个矩形上,除了现在他距离前一个矩形几米) - 我想"圆"坐标.
这样,每次用户处于矩形时 - 我检查这个矩形是否与之前缓存的矩形类似,如果是,我带来缓存的结果.
此外,如果用户缩小并且他的矩形包含在更大的(先前缓存的)矩形中 - 那么我也可以使用缓存的矩形.
有什么建议 ?
使用Google Maps Android API v2,我可以通过Marker从hashMap 获取然后调用以下内容来更新我的标记位置:
Marker marker = hashMap.get(someId);
marker.setTitle("Title");
marker.setSnippet("Snippet");
marker.setPosition(new LatLng(newLatitude, newLongitude));
Run Code Online (Sandbox Code Playgroud)
但是,如果在调用此标记时选择了标记,则只有在单击标记并重新选择标记后,标题和摘要才会更新.无论如何要告诉地图刷新标记泡泡中的数据?
表现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yu.lbs"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name="com.yu.lbs.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:apiKey=".........."
android:clickable="true"
android:enabled="true" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java:
import android.os.Bundle;
import android.view.Menu;
import com.google.android.maps.MapActivity;
public class MainActivity extends MapActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序可以打开谷歌地图,用户可以从那里开始从A点到B点的谷歌导航.是否可以打开谷歌地图,因此只能在特定比例的屏幕上打开谷歌导航并显示一些额外的(但最小的) )我的应用程序旁边的导航信息?
我在考虑这样的事情:
此外,在谷歌导航期间,用户到达目的地是否可以接收广播?
我知道这有点牵强,但也许有一些想法.
android-mapview ×10
android ×9
google-maps ×4
android-maps ×2
annotations ×1
google-api ×1
iphone ×1
keystore ×1
marker ×1
overlay ×1
overlayitem ×1
resolution ×1
signing ×1
tiles ×1