下面列出了怎么用com.google.android.gms.maps.model.StreetViewPanoramaLocation的API类实例代码及写法,或者点击链接到github查看源代码。
public void walk()
{
StreetViewPanoramaLocation location = streetViewPanorama.getLocation();
StreetViewPanoramaCamera camera = streetViewPanorama.getPanoramaCamera();
if (location != null && location.links != null)
{
StreetViewPanoramaLink link = findClosestLinkToBearing(location.links, camera.bearing);
streetViewPanorama.setPosition(link.panoId);
}
}
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation)
{
if (streetViewPanoramaLocation != null)
{
marker.setPosition(streetViewPanoramaLocation.position);
}
}
public void onMovePosition(View view) {
StreetViewPanoramaLocation location = mStreetViewPanorama.getLocation();
StreetViewPanoramaCamera camera = mStreetViewPanorama.getPanoramaCamera();
if (location != null && location.links != null) {
StreetViewPanoramaLink link = findClosestLinkToBearing(location.links, camera.bearing);
mStreetViewPanorama.setPosition(link.panoId);
}
}
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation)
{
Log.d(MainActivity.TAG, "onStreetViewPanoramaChange() called with: streetViewPanoramaLocation = [" + streetViewPanoramaLocation + "]");
}
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
this.panorama = panorama;
this.panorama.setPanningGesturesEnabled(allGesturesEnabled);
final EventDispatcher eventDispatcher = ((ReactContext) getContext())
.getNativeModule(UIManagerModule.class).getEventDispatcher();
this.panorama.setOnStreetViewPanoramaCameraChangeListener(new StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener() {
@Override
public void onStreetViewPanoramaCameraChange(StreetViewPanoramaCamera streetViewPanoramaCamera) {
if (!(streetViewPanoramaCamera.bearing >= 0 ) && coordinate != null) {
eventDispatcher.dispatchEvent(
new NSTStreetViewEvent(getId(), NSTStreetViewEvent.ON_ERROR)
);
}
}
});
panorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
if (streetViewPanoramaLocation != null) {
WritableMap map = Arguments.createMap();
map.putDouble("latitude", streetViewPanoramaLocation.position.latitude);
map.putDouble("longitude", streetViewPanoramaLocation.position.longitude);
eventDispatcher.dispatchEvent(
new NSTStreetViewEvent(getId(), NSTStreetViewEvent.ON_SUCCESS, map)
);
} else {
eventDispatcher.dispatchEvent(
new NSTStreetViewEvent(getId(), NSTStreetViewEvent.ON_ERROR)
);
}
}
});
if (coordinate != null) {
this.panorama.setPosition(coordinate, radius);
}
long duration = 1000;
if (bearing > 0) {
StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
.zoom(zoom)
.tilt(tilt)
.bearing(bearing)
.build();
panorama.animateTo(camera,duration);
}
this.started = true;
}
@Override
public void setAttributes(LotAttrs attrs, final StreetView streetView) {
this.mAttrs = attrs;
this.mStreetView = streetView;
if (mAdapter != null) {
mAdapter.setFooterAttrs(attrs);
}
if (vStreetViewPanoramaView != null) {
vStreetViewPanoramaView.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(final StreetViewPanorama panorama) {
vStreetViewPanoramaView.setVisibility(View.VISIBLE);
panorama.setUserNavigationEnabled(false);
panorama.setPanningGesturesEnabled(false);
panorama.setZoomGesturesEnabled(false);
if (!TextUtils.isEmpty(streetView.getId())) {
panorama.setPosition(streetView.getId());
panorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
if (streetViewPanoramaLocation == null) {
Log.v(TAG, "Location not found. panoramaId: " + streetView.getId());
return;
}
try {
if (streetView.getId().equals(streetViewPanoramaLocation.panoId)) {
panorama.animateTo(new StreetViewPanoramaCamera.Builder()
.zoom(Const.UiConfig.STREET_VIEW_ZOOM)
.bearing(streetView.getHead())
.build(), Const.UiConfig.STREET_VIEW_DELAY);
vStreetViewPanoramaView.postDelayed(new Runnable() {
@Override
public void run() {
ObjectAnimator
.ofFloat(vStreetViewDelayFix, View.ALPHA, 1, 0)
.start();
}
}, Const.UiConfig.STREET_VIEW_DELAY);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
});
}
}
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation location) {
if (location != null) {
marker.setPosition(location.position);
}
}
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation location) {
if (location != null) {
panoChangeTimesTextView.setText("Times panorama changed=" + ++panoChangeTimes);
}
}
@Override
public void onStreetViewPanoramaChange(
StreetViewPanoramaLocation streetViewPanoramaLocation) {
Toast.makeText(getApplicationContext(), "Lat: " + streetViewPanoramaLocation.position.latitude + " Lng: " + streetViewPanoramaLocation.position.longitude, Toast.LENGTH_SHORT).show();
}