私の質問は、Googleマップを設定する方法を知っていますか、自分の位置とズームしたビューを開くためですか?Googleマップv2 - 自分の位置とズームの両方を設定します
現在、メインビューはアフリカに向かって開いており、ズームアウトされています。
そして私は今、日を探している、と私は見つけることができるすべては、次のとおりです。
1)あなたは、ズームのように(二つのことをアニメーション化し、複数のGoogleマップで自分の場所)に行くことができませんか?ですから、アニメーションを設定する前にズームを設定する方法を理解できれば、この問題は解決されます。その傾向は問題になりがちですが、どちらかを変更することはできますが、両方を変更することはできません。
2)役に立つかもしれない他のクラスが見つかりましたが、クラスがGoogleマップを操作できるようにコードを設定する方法についてのヘルプはありません。
これはこれまで私がこれまで保持してきたコードであり、一部は動作しているものもあれば、そうでないものもあります。後で役に立つと思っていたものもあります。
package com.MYWEBSITE.www;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
//LocationSource a = (LocationSource) getSystemService(Context.LOCATION_SERVICE);
//LocationManager b = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//map.setLocationSource(a);
Criteria criteria = new Criteria();
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
double lat = location.getLatitude();
double lng = location.getLongitude();
LatLng coordinate = new LatLng(lat, lng);
//CameraPosition.Builder x = CameraPosition.builder();
//x.target(coordinate);
//x.zoom(13);
//Projection proj = map.getProjection();
//Point focus = proj.toScreenLocation(coordinate);
//map.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
map.animateCamera(CameraUpdateFactory.zoomBy(13));
//map.moveCamera(CameraUpdateFactory.newLatLng(coordinate));
////LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
}
}
は受け入れ答えすべきではないズームする動きを使用してカメラをアニメーション化。 Mubeen1992の答えは正しいです。 – Matthew
@AlanHaverty:回答にリンクしているサンプルアプリケーションには、そのコードが含まれています。完璧に動作します。 Android 7.0を実行しているNexus 9と、Android 6.0.1を実行しているNexus 6Pでテストしました。それは2、3年間完璧に動作しています。それはワンショットでは行われません。私の答えにはロブズが優れた答えであることに同意します。このコードがうまくいかないという証拠があると思われる場合は、サンプルプロジェクトをどこかに投稿してください。 – CommonsWare
@CommonsWare私の謝罪ですが、あなたのコードでテストしている間、私の地図の左上隅はlat lngで設定されているようです。私は、あなたが.newLatLng()がしたことを間違えたと思った。私はなぜそれがオフだったのかわからない、それは私の最後に何か他のものであったに違いない、apiの文書はあなたのケースを証明する、あなたの答えに喜んでトリガを行って申し訳ありません! 最初のコメントを削除すると、混乱を避けることができます。 APIソース:https://developers.google.com/android/reference/com/google/android/gms/maps/CameraUpdateFactory.html#newLatLng(com.google.android .gms.maps.model。LatLng) –