我需要在用户缩放后重绘重叠.
做这个的最好方式是什么?
我已经尝试了我能想到的一切(保存getZoomLevel()状态,覆盖onUserInteraction()),没有任何实际工作.
问题是,当用户点击缩放时会调用draw(),因此我的绘制方法得到的信息(关于地图的状态)与mapview完成缩放后的状态不同.
此外,在缩放结束时不会调用draw(),因此只有在平移地图时才会正确绘制叠加层.
我的地图上有很多标记.缩放每个标记显示我的位置.但是缩小标记彼此重叠,确定标记的位置更加困难.
有没有办法根据缩放系数缩放标记图像?
只是想知道我是否可以在MAPVIEW中使用标准/默认覆盖/标记?
我一直在网上搜索,所有教程都谈到扩展叠加并将自定义图像放在上面.
有更简单的方法吗?我只想要一个标记,没什么特别的.
问候
詹姆士
如何在React-Native中为MapView组件的纬度和经度值计算delta-latitude和delta-longitude值.谢谢
我正在尝试在MapView中实现双击式缩放功能.事件总是第一次发生,但从未发生过.以下是我的代码.我有一种感觉,它与地图控制器在第一次触发事件后迷路有关.
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class mainmap extends MapActivity implements OnTouchListener{
long lasttime = -1;
MapController mapc;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapc = mapView.getController();
mapView.setOnTouchListener(this);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
if(event.getEventTime()-lasttime<2000){
mapc.zoomInFixing((int)event.getX(),(int)event.getY());
}
}
lasttime=event.getEventTime();
return true;
} …Run Code Online (Sandbox Code Playgroud) 我如何在两个poi-s之间的mapview上画一条路线?
我在这里看到其他线程有类似的症状,但没有一个答案解决了我的问题.我正在关注谷歌地图视图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html并严格遵循所有方向,我不断收到此错误.. java.lang.ClassNotFoundException:加载程序中的com.goodintechnology.maps.Mymap dalvik.system.PathClassLoader [/data/app/com.goodintechnology.maps-1.apk]
我从头开始很多次,但每次,只要我将Activity更改为MapActivity,就会抛出错误.应用目标是Google API 2.2,模拟器是相同的,启用了GPS.我已尝试在Applications语句之前,之后和之中放置uses-library语句,但这并未改变任何内容.我甚至尝试将语句垂直放在清单中.所以,经过大约8个小时搞乱这个,我把它交给你们所有人.这是代码:
AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
<uses-library android:name="com.google.android.maps" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Mymap"
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>
Run Code Online (Sandbox Code Playgroud)
和布局main.xml
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="My key that was generated on google is here. trust me"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
和Mymap类
package com.goodintechnology.maps;
import com.google.android.maps.MapActivity;
import android.os.Bundle;
public class Mymap extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) 我在Android上做了一个项目,在那里我给出了一个地理点(lat,lng)列表,每个点都有一个相关的Altitude(height)值.
我的任务是根据点高度值创建具有不同颜色的给定地图的热图.
有人知道任何现有的库也是如此.或者,如果有人能指出如何实现它,对我来说也会非常有帮助.我唯一的限制是它应该在Android中运行.
提前致谢.
android google-maps heatmap google-maps-api-3 android-mapview
背景
我正在开发一个在地图上显示路径的应用程序(谷歌地图和OpenStreet地图).波纹输出示例:

为了绘制上述路径,我使用以下方法:
private void drawWithoutElevation(Canvas canvas, Projection projection){
if(rebuildRequired)
pathBuild();
else{ //check if path need to be offset
if(offsetRequired){
path.offset(offset.x, offset.y);
}
}
canvas.drawPath(path, paint);
}
Run Code Online (Sandbox Code Playgroud)
上述方法需要大约1.5ms来绘制10.000点,这是可以接受的.
但是,我还希望根据点高度显示使用不同颜色的路径.波纹输出示例:

由于我找不到为每个路径段定义不同颜色的方法,我尝试了以下方法:
方法1
最明显的解决方案,canvas.drawLine()在路径中的每个点之间使用.示例:
private void drawWithElevation(Canvas canvas, Projection projection){
for(int i=1; i<geoArrList.size(); i++){
paint.setColor(geoArrList.get(i));
canvas.drawLine(pPrev.x, pPrev.y, p1.x, p1.y, paint);
pPrev.set(p1.x, p1.y);
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于相同的10.000点,这导致非常令人失望的约80ms的时间.
方法2
以离散的步骤分割高度,并建立一个Path对象列表,每个高度段更改一个.代码示例如下:
private void drawWithElevation(Canvas canvas, Projection projection){
if(rebuildRequired)
pathBuild();
for(int i=0; i<pathSegments.size(); i++){
if(needOffset){
pathSegments.get(i).path.offset(offsetX, offsetY);
}
paint.setColor(pathSegments.get(i).color);
canvas.drawPath(pathSegments.get(i).path, paint);
} …Run Code Online (Sandbox Code Playgroud) 自从我更新到Xcode 9和Swift 4.0后,我的模拟器中的mapView运行速度非常慢.我认为这是因为代码会被弃用或因为我的代码很广泛而导致速度变慢,但是我将mapView添加到空白项目中,并且mapView导航/缩放的速度也很慢!我需要配置一些设置来在模拟器中修复此问题吗?
这是控制台日志中生成的输出:
2017-10-26 23:25:50.932530-0500 mapTest[7994:151068] [VKDefault] Tile 1.2.2 (256) in current unloaded state for 0.07 seconds - Polygons - Loading (ephemeral) (0.07 sec), Rivers - Loading (ephemeral) (0.07 sec), Roads - Loading (ephemeral) (0.07 sec), Point Labels - Loading (ephemeral) (0.07 sec), Polygon Labels - Loading (ephemeral) (0.07 sec), Road Labels - Loading (ephemeral) (0.07 sec), Resources - Unavailable (terminal) (2.11 sec), Attributes - Loading (ephemeral) (0.07 sec)
Run Code Online (Sandbox Code Playgroud) android-mapview ×10
android ×8
google-maps ×2
delta ×1
graphics ×1
heatmap ×1
java ×1
maps ×1
mkmapview ×1
react-native ×1
simulator ×1
swift ×1
zoom ×1
zooming ×1