Android - 在欧文地图中显示GPS点

时间:2013-07-23 07:30:54

标签: android map gps position draw

我遇到以下问题:我的设备上有一张owen Map。现在我从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);

2 个答案:

答案 0 :(得分:0)

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

然后你可以计算地图的X-Width = longitudinalSpan和y-height = latitudinalSpan。

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

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

答案 1 :(得分: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;

但是,这不对!? 为什么呢?

谢谢,对不起我的英文