Google Haritalar'ın sol üst köşesinde, kullanıcılara belirli bir nokta işaret noktasından x uzaklıkta olmaları konusunda bilgi veren bir TextView
görüntülemeye çalışıyorum, ör. "A konumuna yakınsınız", ancak menzil dahilinde yalnızca TextView
gösteriliyor. Aralık dışına çıkarlarsa, TextView
kaybolacaktır.Google Haritalar'daki güncel konumdaki yakındaki işaretçi konumlarını nasıl sürekli olarak tespit edebilirim?
Google Rehber API'sının size yakındaki tüm yerleri gösterdiğinin farkındayım, ancak kullanıcıların yakınlarına x uzaklıkları olması durumunda haritadaki işaretçilerin yakın konumlarını göstermek istiyorum.
Bunu nasıl başarabilirim? Google Rehber API'sını kullanmaya gerek duyar mıyım?
benim sınıf .java:
private GoogleMap mMap;
private LatLng currLocation;
private static final LatLng POINTA = new LatLng(32.820193, -117.232568);
private static final LatLng POINTB = new LatLng(32.829129, -117.232204);
private static final LatLng POINTC = new LatLng(32.821114, -117.231534);
private static final LatLng POINTD = new LatLng(32.825157, -117.232003);
// Array to store hotspot coordinates
private ArrayList<LatLng> markerCoords = new ArrayList<LatLng>();
private static final int POINTS = 4;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
setUpMapIfNeeded();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Create MenuInflater object to insert ActionBar buttons
MenuInflater inflater = getMenuInflater();
// Display the ActionBar buttons from .xml
inflater.inflate(R.menu.menu_map, menu);
return true;
}
@Override
protected void onResume()
{
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded()
{
if (mMap == null)
{
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null)
{
markerCoords.add(POINTA);
markerCoords.add(POINTB);
markerCoords.add(POINTC);
markerCoords.add(POINTD);
setUpMap();
}
}
}
private void setUpMap()
{
// Set My Location blue dot
mMap.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location myLocation = locationManager.getLastKnownLocation(provider);
if (myLocation != null)
{
double latitude = myLocation.getLatitude();
double longitude = myLocation.getLongitude();
currLocation = new LatLng(latitude, longitude);
}
for (int i = 0; i < POINTS; i++)
{
mMap.addMarker(new MarkerOptions()
.position(markerCoords.get(i))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.post_it_marker)));
}
}
map.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
map:cameraTargetLat="32.881416"
map:cameraTargetLng="-117.237428"
map:cameraZoom="15"
map:mapType="normal" />
</RelativeLayout>
birisi bana doğru yönde işaret edebilir? Teşekkür
Merhaba yapmalıdır? – Zack