gpt4 book ai didi

android - 在 google map v2 android 上绘制

转载 作者:行者123 更新时间:2023-11-29 01:51:11 25 4
gpt4 key购买 nike

我创建了一个 android 应用程序来在 google map v2 上绘制自由形状。该应用程序的想法是我结合了两个应用程序,一个是绘制自由形状,另一个是普通的 google map v2 应用程序。

link是我关于这个应用程序的最后一个问题,它包含代码

该应用程序对我来说运行良好,但现在我遇到了一个新问题。我的问题是,当我在 map 上的特定位置画一条线并将控件转换为 map 并拖动它时,我发现该线在 View 中保持在其位置并且 map 移动到该线下方,这导致线到在另一个位置而不是我想要的位置。

有什么方法可以使线在我绘制的位置稳定,并且当我拖动 map 时,线会随其位置一起拖动吗?

希望有人明白我的意思。

最佳答案

例如,如果您使用 Canvas 在 map View 上画线,那么您需要获取起点和终点的 x、y 点。

然后通过以下代码,您可以将 x,y 点更改为纬度和经度。

public boolean onTouchEvent(MotionEvent event)
{
int X = (int)event.getX();
int Y = (int)event.getY();

GeoPoint geoPoint = mapView.getProjection().fromPixels(X, Y);
}

然后像这样在您的 mapvierw 上注册监听器。

map.setOnCameraChangeListener(new OnCameraChangeListener() {

@Override
public void onCameraChange(CameraPosition arg0) {
// Move camera.
Here remove your view from screen and then get lat long of visible region by passing x,y points of 4 regions in `mapView.getProjection().fromPixels(x,y)` and then check if latitude and longitude of your line within range if yes then drawline by following code.

float pisteX;
float pisteY;
Projection projection = this.mapView.getProjection();
Point pt = new Point();
GeoPoint gie = new GeoPoint(latitude,longitude);
Rect rec = mapView.getScreenRect(new Rect());
projection.toPixels(gie, pt);
pisteX = pt.x-rec.left; // car X screen coord
pisteY = pt.y-rec.top; // car Y screen coord

Now draw line between this two (x,y) points.
}


});

希望我能让你清楚,你能明白我想说的。

关于android - 在 google map v2 android 上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com