使用gmaps v2启动虚拟游览

jir*_*a85 15 java android google-maps virtual-tour

有没有办法用Android谷歌地图api v2开启虚拟旅游?(与此类似:https://www.google.com/maps/@37.772031,-122.432005,3a,75y,12.85h,79.63t/data=!3m5!1e1!3m3!1srR8mp3c5XZoAAAAGOphoBg!2e0!3e2)

我想点击一个gmap中的一个地方并提供打开虚拟游览的可能性(以及其他信息)(即使在webview中,但我如何创建上述链接?)

Ava*_*anz 12

Photo Sphere是一款Android相机功能,可让您创建逼真的360度全景照片 - 类似于街景视图.您可以拍摄一系列照片并自动将它们转换为无缝的360 度全景照片.然后,您可以使用Google地图轻松分享您的Photo Sphere全景照片.

在此输入图像描述

要将Google地图显示在您的应用中,您应该将其添加到您的活动中:

MainActivity.java
public class MainActivity extends Activity {

    // Google Map
    private GoogleMap googleMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            // Loading map
            initilizeMap();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * function to load map. If map is not created it will create it for you
     * */
    private void initilizeMap() {
        if (googleMap == null) {
            googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                    R.id.map)).getMap();

            // check if map is created successfully or not
            if (googleMap == null) {
                Toast.makeText(getApplicationContext(),
                        "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                        .show();
            }
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        initilizeMap();
    }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

并且还为您的代码添加了一个标记,用于打开虚拟导览的位置:

// latitude and longitude
double latitude = ;
double longitude = ;

// create marker
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Hello Maps ");

// adding marker
googleMap.addMarker(marker);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后更新它以相应地与提供的当前位置坐标进行交互:

 public boolean onMarkerClick(Marker marker) {

  if(markerClicked){

   if(polyline != null){
    polyline.remove();
    polyline = null;
   }

   rectOptions.add(marker.getPosition());
   rectOptions.color(Color.RED);
   polyline = myMap.addPolyline(rectOptions);
  }else{
   if(polyline != null){
    polyline.remove();
    polyline = null;
   }

   rectOptions = new PolylineOptions().add(marker.getPosition());
   markerClicked = true;
  }

  return true;
 }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

将Photo Sphere制作为开放格式后,任何人都可以在网络或移动设备上创建和查看它们,只需使用Panorama Class/Interface即可:

// This listener will be called with information about the given panorama.
OnPanoramaInfoLoadedListener infoLoadedListener =
  new OnPanoramaInfoLoadedListener() {
    @Override
    public void onPanoramaInfoLoaded(ConnectionResult result,
                                     Intent viewerIntent) {
        if (result.isSuccess()) {
            // If the intent is not null, the image can be shown as a
            // panorama.
            if (viewerIntent != null) {
                // Use the given intent to start the panorama viewer.
                startActivity(viewerIntent);
            }
        }

        // If viewerIntent is null, the image is not a viewable panorama.
    }
};

// Create client instance and connect to it.
PanoramaClient client = ...
...

// Once connected to the client, initiate the asynchronous check on whether
// the image is a viewable panorama.
client.loadPanoramaInfo(infoLoadedListener, panoramaUri);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这将允许您将Photo Sphere 查看器作为应用程序的一部分.