1

我有商店列表,当我根据从网络服务器获得的纬度和经度值单击任何商店时,我会在地图上显示它们。他们中的一些人出现,但有些人不会......我知道这不是一个好问题......但我只是期待可能遇到同样问题的人可能会有所帮助。

这是代码:

Double Storelat = (FeedListViewActivity.lat);
        Double Storelng = (FeedListViewActivity.lng);

        storeLocation = new GeoPoint((int) (Storelat * 1E6), (int) (Storelng * 1E6));


public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        super.draw(canvas, mapView, shadow);
        Point locationPoint1 = new Point();

        Projection projection1 = mapView.getProjection();
        projection1.toPixels(storeLocation, locationPoint1);

        Paint containerPaint = new Paint();
        containerPaint.setAntiAlias(true);
        int containerX1 = locationPoint1.x;
        int containerY1 = locationPoint1.y;

        if (shadow) {
            containerX1 += CONTAINER_SHADOW_OFFSET;
            containerY1 += CONTAINER_SHADOW_OFFSET;
            containerPaint.setARGB(90, 0, 0, 0);
            canvas.drawCircle(containerX1, containerY1, CONTAINER_RADIUS,
                    containerPaint);

        } else {
            containerPaint.setColor(Color.RED);
            canvas.drawCircle(containerX1, containerY1, CONTAINER_RADIUS,
                    containerPaint);
        }
}

这些是我从网络服务器获得的值:

在职的:

纬度 = 18.5170002 lng = 73.858078

不工作:

纬度 = 18.618679 lng = 73.8037491

4

1 回答 1

4

你的答案就在你的问题本身

working:

lat = 18.5170002 lng = 73.858078

not working:

lat = 18.618679 lng = 73.8037491

根据上面提供的东西,您可以看到精度差异我也面临同样的问题是 6 个月,我已经将 6 精度提高到 8 精度并且当时运行良好。

如果您通过 18.618679 那么它会将其视为 0.18618679 进行确认尝试缩小到 2 级或 3 级,您将在意想不到的地方得到您的观点。

于 2012-05-21T14:01:02.283 回答