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 経度 = 73.858078

動作していません:

緯度 = 18.618679 経度 = 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 に答える