0
ここに状況があります。私は1つの経度と緯度のときにのみ表示されるマーカーを作成しようとしています。私はLatLngBoundsを最初からマップ上の1桁のマーカー内にマッチさせるようにしています。Googleマップマーカーの設定と境界の割り当て - Android
私はすべてを稼働させることはできますが、同時に行うことはできません。私はIf/Elseステートメントで間違ったことをする必要があります。
protected void onPostExecute(Address address) {
mMap.clear();
if (address == null) {
Toast.makeText(MainActivity.this, R.string.invalid_entry, Toast.LENGTH_LONG).show();
} else {
String addressName = "";
for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
addressName += " - " + address.getAddressLine(i);
}
Double longitude = address.getLongitude();
Double latitude = address.getLatitude();
LatLng position = new LatLng(address.getLatitude(), address.getLongitude());
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(position);
builder.include(position);
//search location
mMap.addMarker(new MarkerOptions().position(position).title(addressName)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
for (int i = 0; i < markers.size(); i++) {
Double distanceLng = Math.abs(markers.get(i).longitude - longitude);
Double distanceLat = Math.abs(markers.get(i).latitude - latitude);
if ((distanceLng < 1) && (distanceLat < 1)) {
mMap.addMarker(new MarkerOptions()
.position(markers.get(i))
.title("Place")
.snippet("Description"));
builder.include(markers.get(i));
LatLngBounds bounds = builder.build();
int padding = 50; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
Log.d(TAG, "DistanceBounds: " + bounds);
Log.d(TAG, "DistancePadding: " + padding);
Log.d(TAG, "DistanceI: " + i);
mMap.moveCamera(cu);
}
else {
Toast.makeText(MainActivity.this, R.string.no_places_in_area,Toast.LENGTH_LONG);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, 10));
Log.d(TAG, "DistanceLng Failed = " + distanceLng + "i = " + i);
Log.d(TAG, "DistanceLat Failed = " + distanceLat + "i = " + i);
}
}
}
正しいコードを書く上での助けに感謝します!
あなたは 'builder.include(position);'を2回追加しています(おそらくtypo –
) ''経度と緯度が離れています 'と言ったとき、 'distanceLng'を' distanceLat'から引きます。 –