莆仙生活网
当前位置: 莆仙生活网 > 知识库 >

streetview

时间:2024-03-20 01:29:51 编辑:莆仙君

如何评价目前的VR行业,并预测未来VR的发展趋势

在过去的几年里,如果大家留意到虚拟现实产业的增长轨迹,很明显现在已经到了最伟大的时刻。首先在2014年,大约只有20万的VR活跃用户。这一数字到2017年已经增加到了9000万,到2018年预计会大幅增加到1.7亿用户,几乎是2017年的两倍。而2019年虚拟现实行业发展趋势也不容小觑,主要有五大趋势:

一、出现更多VR全景内容

根据Omnivirt研究报告显示,VR全景内容在去年的参与度高于普通内容。这一数据是基于对1000多个活动视频完成、点击和整体参与的分析。除此之外,Omnivirt的研究还发现,使用VR全景内容除了在所有垂直领域传播外,内容和质量也都在逐年提升。而现在使用虚拟现实和VR全景的公司也越来越多,展望未来,我们可以看到VR全景虚拟现实内容在更大范围内普及。

二、广告领域将出现更多增强现实应用实例

早在去年业内人士就预测虚拟现实技术将会朝着主流应用的方向发展,而这也是推动虚拟现实技术发展的动力之一,现在广告业就是最有可能率先推广虚拟现实技术的行业。虽然现在只有少数VR虚拟现实营销的例子,但是可以期待2020年我们看到更多的虚拟现实广告,这些广告也会进一步推动VR虚拟现实产业的发展。

三、虚拟现实开发者崛起

任何行业的增长都与该行业人才的能力相互匹配。尽管VR虚拟现实行业已经做好准备实现更大的指数级增长,但是只有人才的数量和能力符合条件才能实现增长的目标。虽然VR虚拟现实游戏开发一直未停止,但是未来虚拟现实技术开发者数量需求还会不断增加。实际上,现在已经有不少科技巨头都已经开始采取了各种措施来鼓励VR虚拟现实内容开发。

四、更身临其境的沉浸式体验

对于虚拟现实而言,更重要的事情就是如何做到更加逼真。换言之,我们可以期待虚拟现实未来的发展可以呈现更加身临其境的体验。八面球体的全方位立体声麦克风捕捉360度音频,这样可以为用户带来更加身临其境的音频体验。这种创新在VR虚拟现实技术发展的基础上将发挥更大的作用。有预测称,与现实相比,虚拟现实设备能让我们鼻子的嗅觉和触觉更接近真实的体验。我们在2020年或以后更加期待进一步的沉浸式体验。

五、虚拟现实产品成本下降、可用性提高


Android开发怎么利用Google 地图

  自google 06年进入中国,在地图、移动领域的发展速度基本上都是每年几倍的增长。在最新的Android平台开发相关应用程序,如果能深入了解google map 将会对我们Android开发提供很大的帮助.以下是我总结的在Android开发中对google map的理解。
  1. 首先先要获取你的debug keystore位置:
  打开Eclipse--->Windows---> preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\sdhbk\.android\debug.keystore
  2.
D:\android-sdk-windows-1.5_r1\tools>keytool -list -alias androiddebugkey -keysto
re "C:\Documents and Settings\sdhbk\.android\debug.keystore" -storepass android
-keypass android
androiddebugkey, 2009-7-25, PrivateKeyEntry,
认证指纹 (MD5): DA:D5:6E:C2:80:D1:0F:0D:F8:2A:58:6A:74:7C:CE:2D
  3.
  打开
  填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
     感谢您注册 Android 地图 API 密钥!
  您的密钥是:
  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  4.    使用得到的apiKey:
  在layout中加入MapView
       <com.google.android.maps.MapView
           android:id="@+id/mapview"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g" />
  或者
  <view android:id="@+id/mv"
  class="com.google.android.maps.MapView"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_weight="1"
  android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"
  />
  5.Android在sdk1.5的预装的add-on中提供了一个Map扩展库com.google.android.maps,利用它你就可以给你的android应用程序增加上强大的地图功能了。这个库的位置在Your-SDK_DIR\add-ons\google_apis-3\libs.
一定要在manifest.xml中设置全相应的权限,比如:
  

要在manifest.xml中加上要用的maps库:
  <manifest xmlns:android=""
package="com.example.package.name">
...

 
  ...

...

  需要说明的是这个库不是标准的android sdk的内容,你也可以自己从这里这里下载并放到你的sdk里面。
  Maps库分析
  Maps库提供了十几个类,具体可以参考这里, 包括Mapview,MapController,MapActivity等。
  Mapview是用来显示地图的view, 它也是派生自android.view.ViewGroup。
  地图可以以不同的形式来显示出来,如街景模式,卫星模式等,具体方法可以参考:
  setSatellite(boolean), setTraffic(boolean), and setStreetView(boolean)
  MapView只能被MapActivity来创建,这是因为mapview需要通过后台的线程来连接网络或者文件系统,而这些线程要由mapActivity来管理。
  需要特别说明的一点是,android 1.5中,map的zoom采用了built-in机制,可以通过setBuiltInZoomControls(boolean)来设置是否在地图上显示zoom控件。
  MapActivity是一个抽象类,任何想要显示MapView的activity都需要派生自MapActivity。并且在其派生类的onCreate()中,都要创建一个MapView实例,可以通过MapView constructor (then add it to a layout View with ViewGroup.addView(View)) 或者通过layout XML来创建。
  实例分析
  最后,按照惯例,还是用一个小程序来演示一下android中地图功能的开发。主要功能是实现了地图的缩放,添加了菜单,从而可以手动选择地图的显示模式等。
  Step 1: 新建一个android project, 注意这里要选择的build target为"Google APIs"
  Step 2: 修改menifest文件:
  
<manifest xmlns:android=""
   package="com.map.prac"
   android:versionCode="1"
   android:versionName="1.0">
 
 
 
 
    <activity android:name=".MapViewPrac2"
         android:label="@string/app_name">
     
       
       
     
   
 
 

  Step 3: 修改layout文件,main.xml
  
<LinearLayout xmlns:android=""
  android:id="@+id/main"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <com.google.android.maps.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:enabled="true"
    android:clickable="true"
    android:apiKey="                  "
    />

这里需要将api key中的      改成你自己申请到的api key.
  Step 4: 修改代码:
  package com.map.prac;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
public class MapViewPrac2 extends MapActivity {
  private final String TAG = "MapPrac";
  private MapView mapView = null;
  private MapController mc;
  //Menu items
  final private int menuMode = Menu.FIRST;
  final private int menuExit = Menu.FIRST+1;
  final private int menuCommandList = Menu.FIRST + 2;
  private int chooseItem = 0;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mapView = (MapView)findViewById(R.id.map);
    mc = mapView.getController();
    mapView.setTraffic(true); //
    mapView.setSatellite(false);
    mapView.setStreetView(true);
    //GeoPoint gp = new GeoPoint((int)(39.269259 * 1000000), (int)(115.255762 * 1000000));//yixian
    GeoPoint gp = new GeoPoint((int)(39.95 * 1000000), (int)(116.37 * 1000000));//beijing
    //mc.animateTo(gp);
    //mc.setZoom(12);
    mc.setCenter(gp);
    //to display zoom control in MapView
    mapView.setBuiltInZoomControls(true);
  }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    Log.i(TAG,"enter onKeyDown");
    return super.onKeyDown(keyCode, event);
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, menuMode, 0, "Map Mode");
    menu.add(0, menuCommandList, 1, "Command List");
    menu.add(0, menuExit, 2, "Exit");
    return super.onCreateOptionsMenu(menu);
  }
  @Override
  public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
    switch(item.getItemId())
    {
    case menuMode:
      Dialog dMode = new AlertDialog.Builder(this)
      //.setIcon(R.drawable.alert_dialog_icon)
      .setTitle(R.string.alert_dialog_single_choice)
      .setSingleChoiceItems(R.array.select_dialog_items2, chooseItem, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          Log.i(TAG, "choose button is "+ whichButton);
          chooseItem = whichButton;
          /* User clicked on a radio button do some stuff */
        }
      })
      .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          /* User clicked Yes so do some stuff */
          Log.i(TAG,"item = "+chooseItem);
          switch(chooseItem)
          {
          case 0:
            mapView.setSatellite(false);
            break;
          case 1:
            mapView.setSatellite(true);
            break;
          case 2:
            mapView.setTraffic(true);
            break;
          case 3:
            mapView.setStreetView(true);
            break;
          default:
            break;
          }
        }
      })
      .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          /* User clicked No so do some stuff */
        }
      })
      .create();
      dMode.show();
      break;
    case menuCommandList:
      //create the dialog
      Dialog d = new AlertDialog.Builder(this)
      .setTitle(R.string.select_dialog)
      .setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          /* User clicked so do some stuff */
          String[] items = getResources().getStringArray(R.array.select_dialog_items);
          /*new AlertDialog.Builder(this)
              .setMessage("You selected: " + which + " , " + items[which])
              .show();*/
          Log.i(TAG,"you choose is: " + items[which]);
        }
      })
      .create();
      //show the dialog
      d.show();
      break;
    case menuExit:
      finish();
      break;
    default:
        break;
    }
    return super.onMenuItemSelected(featureId, item);
  }
  @Override
  protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
  }
}
关于google map的用法还有待各位Android开发人员在实际开发中的总结!


如何成为VR/AR领域的产品/交互设计师?

想成为VR/AR领域的产品/交互设计师:第1件事是体验。其实体验VR的成本很低,你只需要一台屏幕尺寸在4.7寸以上的手机和一副VR眼镜就可以了。VR眼镜最便宜的可以在淘宝上买谷歌的Cardboard,十几块钱,效果也很好。内容上不要满足于那种虚拟电影院看3D电影的,那种不能算VR。请先翻墙(很重要),谷歌一下VR类的app,这里推荐几个:Google Cardboard,VRSE,Discovery VR,InMind VR等。或者可以去这里找一些优质的iphone VR app:VR-iPhone第2件事是了解VR的原理了。谷歌的网站http://cardboard.google.com有很多不错的资源。比如你可以了解由16台Gopro组成的Google Jump平台;如何运用计算机视觉和计算能力将这16个视频转换成VR视频;如何确定事物的远近关系;如何避免视频间的裂缝等。你还可以通过Viewer Profile Generator来调整显示参数,一方面纠正画面变形,另一方面也学习VR眼镜的原理(顺便补习一下高中物理的光学成像)。第3件事是学习VR设计。还是cardboard的网站,这里的developer内容中有Designing for Google Cardboard的设计指南(可以用谷歌翻译),通过它了解设计VR内容时的一些重点:头部追踪、保持用户控制、音频和触觉反馈等一些我们平时没有想到的设计原则。有安卓手机的同学除了能体验比iPhone多得多的VR内容外,还可以下载一个Cardboard Design Lab的应用,在VR中学习VR设计。 第4件事当然是动手做啦,做VR内容并不难最简单的方法:大家可以下载一个Google Street View的应用,在里面可以拍摄360度的全景照片,然后在VR眼镜中观看。同学们可以在一个白色房间里,把UI打印出来贴在墙上,再用这个app拍摄下来,不就是个VR UI的demo了吗?会写HTML的同学,可以用HTML5的重力感应功能写互动原型,再用Homido Player的浏览器打开,就可以在VR中观看demo啦~以上这四件事都是为了让我们更好的熟悉、掌握、运用和生产VR内容。VR之后会如何发展,对于设计师这个职业会造成怎样的冲击和颠覆我们不可预知,但保持一颗好奇、充满探索欲的心,密切关注硬件的发展、技术的变革,在适当的时候开动脑筋,将其与设计结合起来,相信当它真正来临时,我们便可以从容接纳。

中文翻译英文 :学校人文环境不行

Cultural and environment of school are not good(学校人文环境不行)
China's universities are full-time.(中国的大学是全日制的.)Can not earn enough tuition by do part-time.(兼职不能赚取到足够的学费。)And my question is a bad educational environment(school humanities environment are not good).而且我的问题是受教育环境不好(学校人文环境不行).Is not have no money to study(不是没钱上学)


请各位帮忙翻译英语文章2篇。谢谢了!

现在是4月份的下午。就在一年前的今天,我第一次看到了第三大街的Abe Sheftel的玩具商店橱窗里那些奇怪而又是吸引人的娃娃,那家玩具店就我办公室附近。只记得那一天春天来到了,水波荡漾横跨东河,这是春给人们的第一印象。忽而又感到正被烟雾缭绕--那是从煤烟混合工厂的废气和街道附近的穷人的气息。正当我走在去办公室的路上,我来到了Abe Sheftel的玩具店,这次拜访让我更了解那些在满是灰尘的橱窗里可怜的玩具了。我记得了在克利夫兰我一个小侄女的生日,而我又一直有向他们在送小礼物的习惯。因此,我停下脚步,望了望商店的橱窗,看是否有合适的。我瞧着那些并不怎么吸引人玩具 - 一个红色的玩具消防车,一些带兵,廉价棒球,墨水,钢笔,泛黄的信封,软饮料广告 ,最终我的眼睛终于停留在一个角落里不显眼的那个娃娃身上,那是一个我见过的脸上的表情最奇怪而又最迷人的娃娃。由于光线太暗,空气中弥漫着粉尘,我并不能清楚地看到她。尽管如此,我确信我对她已经有了极其深刻的印象,好像我走进了她的世界,进入她的内心。这就像有时一个人看到一个茫茫人海中某个似乎陌生的面孔,也不知怎么的,就被他的人格深深打动!
PS翻译的不好: ) 原文有的地方为了通顺,有一点改动


谷歌地球街景模式怎么进?

你好①进入街景模式需要在谷歌地球界面左下角的选项中勾上“街景视图(StreetView)”一项,这时,地球上就会出现几个“照相机”的图标(通常只有美国几个大城市、日本东京、欧洲名城才有),进一步放大并点击你所要看的地区的图标,谷歌地球就会自动转入街景模式,在街景模式中,通过点击前方的图标进行地区转换。②谷歌地球海洋效果只有在谷歌地球5.0版本中才有,首先点击界面顶栏的“视图”一项,选择水面效果(WaterSurface),再拉近海洋表面即可自动转入水下。附图:泰坦尼克号沉船遗址


Google地球6.0 街景模式怎么设置啊

1 进入街景模式需要在谷歌地球界面左下角的选项中勾上“街景视图(Street View)”一项Google地图 5.2 及早期版本中地球上会出现“照相机”的图标Google地图6 及更高版本中的街景视图 (取消了左侧那个街景视图选项)要查看特定位置的街道级别图像,请将某个区域用鼠标滚轮放大 到一定程度 在右侧您将会看到一个黄色的街景小人图标 显示在导航控件下方 在 3D 查看器中点击并拖动图标,提供了街道级别图像的道路周围会显示蓝色边框。 点击进入即可 并不是所有区域都有街景视图(通常北美洲美国大部分城市、日本部分城市、欧洲及澳洲部分城市才有),进一步放大并点击你所要看的地区的图标,谷歌地球就会自动转入街景模式,在街景模式中,通过点击前方的照相机图标进行地区转换。早期版街景模式 6.0街景模式