0

我有以下问题:我的设备上有一张欧文地图。现在我从 GPS 提供商那里得到了实际的 GPS 位置,并在我的地图上画了这个点。如果我计算跟随 DrawPoint 在任何地方。怎么了?

XMapScreen = 100;
YMapScreen = 200;
XMapGPS = 50.598886;
YMapGPS = 11.994318;

dLat = arg0.getLatitude();
dLon = arg0.getLongitude();

PointToDrawX = ((dLat * XMapScreen )/XMapGPS);
PointToDrawY = ((dLon * YMapScreen )/YMapGPS);
4

2 回答 2

0

您应该存储左下角 (SW) 和右上角 (NW) 的 ow(e)n 地图的纬度、经度坐标。

然后您可以计算地图的 X 宽度 = 纵向跨度和 y 高度 = 纬度跨度。

确保您自己的地图有 North Up。其余的应该很简单。

但这仅适用于小规模地图。大约10公里,也许更多一点。

于 2013-07-23T13:29:08.990 回答
0

好的,我有以下内容:

double dLat = arg0.getLatitude(); //GPS Position
    double dLon = arg0.getLongitude(); //GPS Position

    double latLeftLower = 50.58731;
    double lonLeftLower = 11.992316;

    double latRightUpper = 50.593509;
    double lonRightUpper = 11.998522;

    double dLatSpan = latRightUpper-latLeftLower;
    double dLonSpan = lonRightUpper-lonLeftLower;

    double dScreenWidth = ivMap.getWidth();
    double dScreenHeight = ivMap.getHeight();

    double dLatFactor = dScreenWidth/dLatSpan;
    double dLonFactor = dScreenHeight/dLonSpan;

    Log.i("GPS", "location changed: lat="+lat+", lon="+lon);
    double xDraw = ((dLat * dScreenWidth) / dLatSpan) / dLatFactor;
    double yDraw = ((dLon * dScreenHeight) / dLonSpan) / dLonFactor;

但是这样不对!?为什么?

谢谢和对不起我的英语

于 2013-07-30T19:34:06.153 回答