diff --git a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java index 6506043..23a04cb 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java @@ -6,9 +6,11 @@ import com.example.nemophila.entities.Shop; import com.example.nemophila.resources.ShopsRest; +import com.google.android.gms.maps.model.Marker; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import retrofit2.Call; import retrofit2.Callback; @@ -20,10 +22,11 @@ // フィールド final private ShopsRest shopsRest; final private Retrofit retrofit; - private double ux; - private double uy; - private double lx; - private double ly; + private double ux; // 画面の右上の経度 + private double uy; // 画面の右上の緯度 + private double lx; // 画面の左下の経度 + private double ly; // 画面の左下の緯度 + private HashMap ShopToMarker; // 店と地図上のピンを紐づける // 更新比較用 private Collection shopsPreData; @@ -61,6 +64,7 @@ updateShops(); } + // サーバーと通信を行い、ライブデータを更新する public void updateShops() { // 画面内に収まる範囲の店舗を取得する Call> call = shopsRest.getShops(ux, uy, lx, ly); @@ -96,4 +100,14 @@ } }); } + + // ShopToMarkerに新しく店と地図上のピンを紐づける + public void setShopAndMarker(Shop shop, Marker marker) { + ShopToMarker.put(shop, marker); + } + + // 店に紐づいたピンを返す + public Marker getMarker(Shop shop) { + return ShopToMarker.get(shop); + } }