兄弟们好,公司有GIS地图开发的需求,看网上关于超图的文章不算多,就随便写写,第一次写博客,尽量写的让大家能看明白。好了,go。

步骤1:首先进入官网下载资源,support.supermap.com.cn/product/iMo… 然后配置jar包跟so,统统加进去。

步骤2:AndroidManifest 文件中添加代码步骤3:获取许可文件

3.1许可文件(正式版本)

这里只说正式的许可,如果想要测试可以去官网下载一个测试的许可,www.supermap.com/cn/

获取正式版的许文文件可以通过访问网络请求的方式自动下载都目录下。 具体代码:

   //搭建地图环境String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();Environment.setLicensePath(rootPath + "/SuperMap/license/");Environment.initialization(this);//是否存在许可LicenseStatus licenseStatus = LicenseManager.getInstance().getLicenseStatus();boolean licenseExsit = licenseStatus.isLicenseExsit();if (licenseExsit) {//如果有许可 直接载入地图initMap();} else {//如果没有许可,在线申请许可//设置申请许可的模块ArrayList modules = new ArrayList();modules.add(LicenseManager.Module.Core_Runtime);//去问领导要激活码 激活码为20个字母数字组成的字符串LicenseManager.getInstance().activateDevice("xxxxx-xxxxx-xxxxx-xxxxx-xxxxx", modules);//设置许可激活LicenseManager.getInstance().setActivateCallback(new LicenseManager.LicenseActivationCallback() {@Overridepublic void activateSuccess(LicenseStatus licenseStatus) {Log.e("123", "----->许可激活成功");//激活成功 直接载入地图initMap();}@Overridepublic void activateFailed(String s) {Log.e("123", "----->许可激活失败" + s);}});}}
复制代码

好了,咱们现在有许可文件了,可以打开地图了

打开地图前首先要知道,咱们的项目地图是要做本地地图,还是发布在iserver服务器的地图。如果是本地地图,将地图放到指定目录下打开就行了,我放这里了,

具体打开代码为

  private void initMap() {setContentView(R.layout.activity_main);//打开工作空间Workspace m_workspace = new Workspace();WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();info.setServer(android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/SampleData/GeometryInfo/World.smwu");info.setType(WorkspaceType.SMWU);m_workspace.open(info);//将地图显示控件和工作空间关联MapView m_mapView = (MapView) findViewById(R.id.Map_view);m_mapcontrol = m_mapView.getMapControl();m_mapcontrol.getMap().setWorkspace(m_workspace);
}
复制代码

要是想打开iserver服务器里面的地图呢,你要先有打开地图的路径,问gis服务器开发人员要,我们服务器里面有三个路径,一个是存数据的,一个是关联数据与图层的,一个是影像地图的,这里我们要打开地图用第三个

具体代码为:

private void openMapUImage() {//打开工作空间Workspace m_workspace = new Workspace();//将地图显示控件和工作空间关联m_mapView = (MapView) findViewById(R.id.Map_view);DatasourceConnectionInfo info = new DatasourceConnectionInfo();//设置数据源别名info.setAlias("Rest1");//设置引擎类型info.setEngineType(EngineType.Rest);//地图服务地址(此处为本地搭建的范例服务为例:)//注意:自己地图服务器的地址String url = "自己地图服务器的地址";//设置地图服务地址(必设)info.setServer(url);//打开数据源datasource = m_workspace.getDatasources().open(info);//添加数据集到地图窗口mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);m_mapControl = m_mapView.getMapControl();m_Map = m_mapControl.getMap();m_Map.setWorkspace(m_workspace);Datasets datasets = datasource.getDatasets();m_Map.getLayers().add(datasets.get(0), true);}
复制代码

整体的代码Activity:

    package com.example.l.gistestdemo;import android.content.Context;import android.hardware.SensorManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.WindowManager;import android.widget.Toast;import com.supermap.data.Dataset;import com.supermap.data.Datasets;import com.supermap.data.Datasource;import com.supermap.data.DatasourceConnectionInfo;import com.supermap.data.EngineType;import com.supermap.data.Environment;import com.supermap.data.LicenseStatus;import com.supermap.data.Workspace;import com.supermap.data.WorkspaceConnectionInfo;import com.supermap.data.WorkspaceType;import com.supermap.mapping.Map;import com.supermap.mapping.MapControl;import com.supermap.mapping.MapView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private MapControl m_mapcontrol = null;private MapView m_mapView;private MapControl m_mapControl;private SensorManager mSensorManager;private Map m_Map;private boolean isQuerying = true;private long firstTime;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//搭建地图环境String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();Environment.setLicensePath(rootPath + "/SuperMap/license/");Environment.initialization(this);//是否存在许可LicenseStatus licenseStatus = LicenseManager.getInstance().getLicenseStatus();boolean licenseExsit = licenseStatus.isLicenseExsit();if (licenseExsit) {//如果有许可 直接载入地图initMap();} else {//如果没有许可,在线申请许可//设置申请许可的模块ArrayList modules = new ArrayList();modules.add(LicenseManager.Module.Core_Runtime);LicenseManager.getInstance().activateDevice("1DA4E-4ECF2-FD41F-DA024-DEA3A", modules);//设置许可激活LicenseManager.getInstance().setActivateCallback(new LicenseManager.LicenseActivationCallback() {@Overridepublic void activateSuccess(LicenseStatus licenseStatus) {Log.e("123", "----->许可激活成功");//激活成功 直接载入本地地图initMap();//激活成功 直接载入服务器中地图//openMap();}@Overridepublic void activateFailed(String s) {Log.e("123", "----->许可激活失败" + s);}});}
}private void initMap() {setContentView(R.layout.activity_main);//        //打开工作空间Workspace m_workspace = new Workspace();WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();info.setServer(android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/SampleData/GeometryInfo/World.smwu");info.setType(WorkspaceType.SMWU);m_workspace.open(info);//        //将地图显示控件和工作空间关联MapView m_mapView = (MapView) findViewById(R.id.Map_view);m_mapcontrol = m_mapView.getMapControl();m_mapcontrol.getMap().setWorkspace(m_workspace);
}private void openMap() {Workspace wokspace = new Workspace();m_mapView = (MapView) findViewById(R.id.Map_view);m_mapControl = m_mapView.getMapControl();m_mapControl.getMap().setWorkspace(wokspace);DatasourceConnectionInfo dsInfo = new DatasourceConnectionInfo();dsInfo.setServer("http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China");dsInfo.setEngineType(EngineType.Rest);Datasource datasource = wokspace.getDatasources().open(dsInfo);if (datasource != null) {Dataset dataset = datasource.getDatasets().get(0);m_mapControl.getMap().getLayers().add(dataset, true);m_mapControl.getMap().refresh();Datasets datasets = datasource.getDatasets();mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);m_Map = m_mapControl.getMap();m_Map.setWorkspace(wokspace);m_Map.getLayers().add(datasets.get(0), true);} else {Toast.makeText(getApplicationContext(), "为空", Toast.LENGTH_LONG).show();}
}}
复制代码

xml-layout文件代码:

    <com.supermap.mapping.MapViewandroid:id = "@+id/Map_view"android:layout_width="match_parent"android:layout_height = "match_parent"></com.supermap.mapping.MapView>
复制代码

Android关于超图Gis地图的配置流程与许可文件获取方法相关推荐

  1. Android 高德地图so包太大,高德地图sdk配置心得(jar文件与so文件导入)

    最近在项目需要使用地图,学习了一下高德sdk的使用,在配置的过程中遇到了一些问题,记录下来. 遇到的问题 高德地图sdk配置的时候需要导入so文件,由于导入的时候一直没有导入成功,所以一直报No im ...

  2. java定时执行bat_windows定时器配置执行java jar文件的方法详解

    ##创建测试类 新建Java工程创建测试类如下代码:(创建文件验证定时器是否执行) package makeFile; import java.io.File; import java.io.IOEx ...

  3. EXCEL地图 | 在EXCEL中也能绘制GIS地图,也能导出ShapFile文件,还能...

    [1]前言 互联网地图已成为我们日常生活中必不可少的出行工具和主要图源,国内互联网巨头BAT凭借技术实力和经济财力,垄断了国内的互联网地图服务市场,形成三足鼎立,互联网地图服务已成为巨头间的竞争.随着 ...

  4. android唯一设备标识、设备号、设备ID的获取方法

    ##如何获取Android设备唯一ID? ###问题 每一个android设备都有唯一ID吗?如果有?怎么用java最简单取得呢? ###回答1(最佳) 如何取得android唯一码? 好处: 1.不 ...

  5. Android studio 开发中 用git实现批量忽略特定文件的方法

    git实现批量忽略特定文件的方法 在用AndroidStudio开发项目的时候,3个人协同开发,那么用Git同步代码,会将模块中的大量iml文件同步,每次都会提交和更新,一个一个的去忽略他们,显然是最 ...

  6. Android 电视 文件目录,通用的安卓智能电视截屏及图片目录文件获取方法

    截屏终于成功了,简单得不能再简单了,再也不用"炫"烂的不行的拍摄技术了,拍得太烂严重影响申精华.发图的情绪,严重打击自信心.虽然很简单,但真是好用的干货,图片美美的,原始的图片就是 ...

  7. 统一gis平台地图服务发布流程及使用

    统一gis平台地图服务发布流程及使用 背景:项目里需要使用第三方提供的地图网格数据进行展示,我们需要将这些网格数据通过统一gis平台发布以供前端使用.第三方提供的数据为shx.shp.dbf文件 服务 ...

  8. Android项目打包,及高德地图服务配置

    前段时间,领导安排了一个Android端功能的任务,开发好了之后问领导打包怎么整,领导也是一脸懵逼,我一个后端开发之前也没实际操作过,于是就百度,由于之前Android开发离职了,打包需要的签名文件也 ...

  9. 【Android 10 源码】MediaRecorder 录像流程:MediaRecorder 配置

    MediaRecorder 录像配置主要涉及输出文件路径.音频来源.视频来源.输出格式.音频编码格式.视频编码格式.比特率.帧率和视频尺寸等. 我们假设视频输入源来自 Camera,Camera2 A ...

  10. 高通Android智能平台环境搭建_编译流程分析

    高通Android智能平台环境搭建_编译流程分析 高通平台环境搭建,编译,系统引导流程分析 TOC \o \h \z \u 1. 高通平台android开发总结. 7 1.1 搭建高通平台环境开发环境 ...

最新文章

  1. BAT数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!
  2. 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
  3. 异常处理、socke基于TCP协议编程
  4. 基于Linux的Socket编程之TCP全双工Server-Client聊天程序
  5. 第七十一期:管理 | 技术Leader:选OKR还是KPI?
  6. source code怎么用_code-builder代码生成器
  7. OpenCV3学习(1)——基本数据类型
  8. vscode 调试.net core 2.0 输出乱码解决方法
  9. MySQL内核月报 2014.09-MySQL· 捉虫动态·auto_increment
  10. esri-leaflet入门教程(5)- 动态绘制图形
  11. 《电路》邱关源 思维导图 第七章-一阶和二阶电路的时域分析
  12. Python模块selenium实例:电影分类排名数据生成json,sqlite和excel(openpyxl)文件(二)
  13. 如何在Android中发送电子邮件
  14. mysql 8.0 初识
  15. Web前端--HTML+CSS+JS新型冠状病毒射击小游戏
  16. 合适的教育ERP管理系统,可让你省去很多麻烦
  17. 数据结构之字符串插入操作
  18. Linux安装chrome的两个方法
  19. ps厚涂颜色过渡混合画笔工具插件
  20. java非主流火星文输入法_火星文转换器,火星文转换器在线转换

热门文章

  1. unity相机的两种不模式的区别
  2. Atititi ui之道 attilax著 v3 s11.docx 1. 概览 2 1.1. 软件设计可分为两个部分:编码设计与UI设计 2 2. 用户界面设计的三大原则是:置界面于用户的控制之下;
  3. Atitit 财政学概论 attilax学习笔记
  4. Atitit 数据库表文档生成解决方案
  5. atitit.设计模式(2) -----查表模式/ command 总结
  6. atitit.eclipse 新特性总结3.1--4.3
  7. paip.语义分析--单字动词表.txt
  8. paip.session的调试in php
  9. Rust : evmap库多读多写尝试
  10. 托管银行数字化转型发展探讨|专家视角