0

我仍然面临将地质位置列表投影到像素的困难。我有一个自定义视图(源自 SurvaceView),用于简单地绘制坐标。

我的代码:

x = (int) sView.getHeight() * ( (pos.getLat() - minLat) / (maxLat - minLat)) + margin;
...
myPoints.add(new Point(x,y));

onDraw(Canvas canvas) {
  for (Point p : myPoints) {
    canvas.drawPoint(p.x, p.y, myPaint);
  }

....不适合整个视图。我变得绝望了。你有什么想法吗?

谢谢

4

1 回答 1

2

有点不清楚你想要什么。

但是,如果我理解正确,您希望将一组 GPS 坐标绘制到位图上,并且您希望生成的绘图适合位图的大小。

如果是这样,我建议采取以下策略:

  1. 求最小和最大纬度和经度,MinLon、MaxLon、MinLat 和 MaxLat。
  2. 从所有点中减去最小值(将数据集重新设置为 (0,0))。
  3. 找到水平比例因子:ScaleX := (MyBitmap.Width) / (MaxLat - MinLat)
  4. 找到垂直比例因子:ScaleY := (MyBitmap.Height) / (MaxLon - MinLon)
  5. 循环遍历数据集中的所有点,并应用 ScaleX 和 ScaleY 的最低比例因子。

然后,您将拥有一组带有坐标的点,这些点可以绘制到您的位图上。

它不会是一个地图上正确的投影,但它可能至少可以作为一个起点。

于 2012-06-10T16:29:19.837 回答