2016-06-01 12 views
0

私は地図上のマーカーを追加しました:マップが回転するマップ変更位置にマーカーが

ClusterLayer markersClusterLayer = new ClusterLayer(); 
Collection<MapMarker> markers = new ArrayList<>(); 
for (GeoCoordinate geoCoordinate : list.get(0).getRoute().getWaypoints()) { 
    MapMarker marker = new MapMarker(); 
    marker.setCoordinate(geoCoordinate); 
    markers.add(marker); 
} 
markersClusterLayer.addMarkers(markers); 
map.addClusterLayer(markersClusterLayer); 

私は、デバイス上で私の指を使って自分のマップを回転させ、マーカー位置が片側から行く、多少変更例えば道路の別の道路への移動。

どうすれば修正できますか?

おかげ

編集:ビデオは、問題を示す:youtu.be/mhObjaq72GQ

答えて

1

私は問題の原因を見つけました、それはポイントの高度に関連していました。

Iは、高度と位置を返さ

PositioningManager.getInstance().getLastKnownPosition() 

を用いました。その結果、マーカーは地図の上を「飛んでいた」。高度を0に設定すると問題が解決しました。

0

それはあなたのコードから明らかではないが、それはあなたがあなたのMapMarkersためのカスタムアイコンを使用していること可能ですか?その場合は、デフォルトでアンカーが画像の中央に設定されていることに注意してください。これは常に正しい位置ではありません。

たとえば、マーカー画像が矢印の場合、矢印の先端にアンカーを設定する必要があります。それ以外の場合は、地図が回転している(イベントの中心は常に同じ場所にありますがイベントの場合)、別の場所を指しているように見えることがあります。間違ったアンカーを設定すると、同様の動作につながる可能性があります。

setAnchorPointメソッドを使用してアンカーを変更できます。

+0

私はデフォルトのマーカー画像を使用しています。私はビデオで問題を記録しました:https://youtu.be/mhObjaq72GQ – Teriblus

+1

ビデオのマーカーはアンカーポイントの下中央を持つ必要があり、ビデオの中央に現れていることがわかります。これがデフォルトのアンカーポイントです。 yourmarker.setAnchorPoint(新しいPointF(yourimage.getWidth()/ 2、yourimage.getHeight()))を使用して、マーカのアンカーポイントをボトム中央に設定します。 – Marco

+0

私が言ったように、私はデフォルトのマーカーイメージを使用していますので、(setAnchorPointなどの)コントロールはありません。私はそれが既にSDKで提供されているイメージであると考えていました。 – Teriblus

関連する問題