マップがカスタマイズできるGoogle APIドキュメントのどこにも見つかりません(= Webでのみカスタマイズできることを知っています)がポケモンGoアプリで、Google APIを使用してカスタムマップを表示します。
PokèmonGoのリファレンスはGoogleマップを使用しています: https://www.reddit.com/r/pokemongo/comments/4s71t1/suggestion_download_city_map_as_a_way_to_decrease/
このアプローチを理解できる人はいますか?
PokémonGOの使い方はわかりませんが、いくつかのレイアウトトリックを使用すると、見栄えの良い効果を得ることができます。私は空の画像を使用しており、空の画像とマップをグラデーションビュー(地平線をシミュレートするため)で、そしてマップを半透明の緑色のビューでカバーしています。
activity_maps.xml
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="170dp">
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scaleType="centerCrop"
Android:src="@drawable/sky"/>
<View
Android:layout_width="match_parent"
Android:layout_height="20dp"
Android:layout_alignParentBottom="true"
Android:background="@drawable/gradientsky"/>
</RelativeLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<fragment
Android:id="@+id/map"
Android:name="com.google.Android.gms.maps.SupportMapFragment"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context="mypackage.MapsActivity"/>
<View
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#2200ff00"/>
<View
Android:layout_width="match_parent"
Android:layout_height="20dp"
Android:background="@drawable/gradientmap"/>
</RelativeLayout>
</LinearLayout>
gradientsky.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:angle="90"
Android:startColor="#ffffff"
Android:endColor="#00ffffff" />
</shape>
gradientmap.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:angle="270"
Android:startColor="#ffffff"
Android:endColor="#00ffffff" />
</shape>
MapsActivity.Java(簡単ですが、例を完成させるために追加しています)
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
map.getUiSettings().setCompassEnabled(false);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(39.87266,-4.028275))
.zoom(18)
.tilt(67.5f)
.bearing(314)
.build();
map.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
}
結果は次のようになります。
別のアプローチは、TileOverlayを使用してカスタムマップを表示することです。タイルオーバーレイの詳細については、 ここ を参照してください。
例を改善するために、マップが回転したときに空が動くように、空に視差効果を追加することができます。
Wikipedia arcticle ポケモンGoの作成者へ:
Niantic、Inc.は、拡張現実モバイルゲームIngressとPokémonGoの開発で最もよく知られているソフトウェア開発会社です。 Googleの内部スタートアップであるNiantic Labsとして、2010年にKeyhole、Inc.の創設者John Hankeによって設立されました。
ご覧のとおり、NianticはGoogleの内部スタートアップでした。両社は別々の道を歩んだが、グーグルは依然としてナイアンティックに投資している。 Nianticにはいくつかの可能性があると思いますが、それは私たちには利用できません。あなたが言ったように、私はAndroid用のGoogleマップのドキュメントにも方法を見つけませんでした。
これが本当かどうかは正確にはわかりませんが、それは単なる推測です。