2017-06-16 49 views
1

我运行地图提供的示例应用程序,但它只是显示一个蓝色地球。地图没有出现,我不知道我犯了什么错误。我提到了Maps文档和GitHub。这里地图显示蓝色地球使用android studio中的最新SDK,地图不出现

这里是我的代码:

package com.here.android.example.routing; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 

import com.here.android.mpa.common.GeoCoordinate; 
import com.here.android.mpa.common.Image; 
import com.here.android.mpa.common.MapEngine; 
import com.here.android.mpa.common.OnEngineInitListener; 
import com.here.android.mpa.mapping.Map; 
import com.here.android.mpa.mapping.MapFragment; 
import com.here.android.mpa.mapping.MapMarker; 
import com.here.android.mpa.mapping.MapView; 
import com.here.android.mpa.mapping.customization.CustomizableScheme; 
import com.here.android.mpa.mapping.customization.CustomizableVariables; 
import com.here.android.mpa.mapping.customization.ZoomRange; 
import com.here.android.mpa.odml.MapLoader; 
import com.here.odnp.util.Log; 

import java.util.List; 



public class BasicMapActivity extends Activity { 

    // map embedded in the map fragment 
    private Map map = null; 
    MapView mapView = null; 


    // map fragment embedded in this activity 
// private MapFragment mapFragment = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mapView = (MapView) findViewById(R.id.ext_mapview); 
     MapEngine.getInstance().init(this, engineInitHandler); 
    } 

    private OnEngineInitListener engineInitHandler = new OnEngineInitListener() { 
     @Override 
     public void onEngineInitializationCompleted(Error error) { 
      if (error == Error.NONE) { 
       map = new Map(); 


       // more map settings 
       map.setProjectionMode(Map.Projection.GLOBE); // globe projection 
       map.setExtrudedBuildingsVisible(true); 
       map.setLandmarksVisible(false); 
       mapView.setMap(map); 

       // MapLoader.getInstance().addListener(mapLoaderHandler); 

       // update packages and get installation state 
       MapLoader.getInstance().getMapPackages(); 
       // more map initial settings 

      } else { 
       Log.e("get", "ERROR: Cannot initialize MapEngine " + error); 

      } 
     } 
    }; 

    @Override 
    public void onResume() { 
     super.onResume(); 
     MapEngine.getInstance().onResume(); 
     if (mapView != null) { 
      mapView.onResume(); 
     } 
    } 

    @Override 
    public void onPause() { 
     if (mapView != null) { 
      mapView.onPause(); 
     } 
     MapEngine.getInstance().onPause(); 
     super.onPause(); 
    } 
} 

摇篮依赖性文件

dependencies { 
     compile(name: 'HERE-sdk', ext: 'aar') 

     compile fileTree(include: ['*.jar'], dir: 'libs') 
     compile 'com.android.support:appcompat-v7:23.4.0' 

    } 

清单文件

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.here.android.example.routing"> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:hardwareAccelerated="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".BasicMapActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 


     <meta-data 
      android:name="com.here.android.maps.appid" 
      android:value="" /> 
     <meta-data 
      android:name="com.here.android.maps.apptoken" 
      android:value="" /> 
     <meta-data 
      android:name="com.here.android.maps.license.key" 
      android:value="" /> 

     <service 
      android:name="com.here.android.mpa.service.MapService" 
      android:label="HereMapService" 
      android:process="global.Here.Map.Service.v2" 
      android:exported="true"> 
      <intent-filter> 
       <action android:name="com.here.android.mpa.service.MapService"></action> 
      </intent-filter> 
     </service> 
    </application> 
</manifest> 
+0

您使用的是什么SDK目标? –

+0

这里地图SDK(https://developer.here.com) – karthick

+0

哪个版本,3.3.x?或3.2.x? –

回答

0

你可以尝试设置地图中心,

public void setCenter (GeoCoordinate point, Animation animation) 

public void setCenter (GeoCoordinate point, Animation animation, double level, float orientation, float tilt) 

,您可以用

GeoCoordinate (double latitude, double longitude) 
+0

我用setCenter(GeoCoordinate point,动画动画)试过它没有工作 – karthick

+0

尝试不使用'map.setProjectionMode(Map.Projection.GLOBE);'并再次设置地图中心 – abdullahselek

+0

嗨@abdull感谢您的回复,我也试过这个代码map.setProjectionMode(Map.Projection.MERCATOR); map.setCenter(新的GeoCoordinate(10.786534,78.86751),Map.Animation.LINEAR),请参阅我的截图在此链接[链接](https://drive.google.com/file/d/0BzcZ3S8vwiVbQVhuQ1l1WVcwXzQ/view)仍然显示蓝色地球它没有渲染地图 – karthick

0

创建会有地理座标删除线MapLoader.getInstance()。getMapPackages()。这使引擎处于地图数据下载状态。而你的代码目前不处理任何地图加载器回调,因此它停留在中间状态。

+0

hi @David我试着用map = mapFragment.getMap(),还没有工作,我觉得Sdk的问题,我可以与我分享我的源代码吗? – karthick

+0

我得到这个错误@ David NetworkProtocol :: GetTask ::运行异常:java.net.UnknownHostException:无法解析主机“version.hybrid.api.here.com”:没有与主机名关联的地址 – karthick

+0

您的设备未连接到公共互联网? –