Goggle Maps SDK を使用して携帯電話で GPS アプリを作成しています。ユーザーが画面上の特定のポイントをテーピングするだけで、特定のポイントの緯度と経度を取得できる機能を追加したいと考えています。
例としては、「これは何ですか?」というものがあります。Googleマップにあるような機能のようなものですが、電話版にはありますか? そして、コードでそれを行うにはどうすればよいですか?
Goggle Maps SDK を使用して携帯電話で GPS アプリを作成しています。ユーザーが画面上の特定のポイントをテーピングするだけで、特定のポイントの緯度と経度を取得できる機能を追加したいと考えています。
例としては、「これは何ですか?」というものがあります。Googleマップにあるような機能のようなものですが、電話版にはありますか? そして、コードでそれを行うにはどうすればよいですか?
大丈夫。まず、メソッドを拡張com.google.android.maps.Overlay
してオーバーライドする必要があります。onTap
class MOverlay extends Overlay {
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
int latitude = p.getLatitudeE6();
int longitude = p.getLongitudeE6();
// Do whatever you need to do here.
return true; // true means we handled the tap
}
}
次に、このオーバーレイを地図上のオーバーレイのリストに追加する必要があります。アクティビティが拡張されていると仮定するとMapActivity
、このコードは機能するはずです。
class MyActivity extends MapActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// your code here
MapView map = findViewById(R.id.map); // you can change this
MOverlay clickCatcher = new MOverlay();
List<Overlay> allOverlays = map.getOverlays();
allOverlays.add(clickCatcher);
map.invalidate();
// All done!
}
}
うまくいけば、それはあなたを助けます。頑張ってください!