toPixels():将经度和纬度投影到自定义视图的像素



我仍然面临着将地质位置列表投影到像素的困难。我有一个自定义视图(源自 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);
  }

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

谢谢

有点

不清楚你想要什么。

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

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

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

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

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

最新更新