浅析SuperMap iMobile 8C for iOS打包静态库

2023-10-24 06:20

本文主要是介绍浅析SuperMap iMobile 8C for iOS打包静态库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:为梦齐舞

      近段时间,有客户咨询如何将超图的库打包成静态库,然后到项目中进行使用,在这里小编做一个简单的介绍,本文中将介绍如何打包静态库,并在也使用超图的库进行调用静态库。
      一、新建静态库工程Cocoa Touch Static Library
这里写图片描述
      二、命名工程为supermapLib
这里写图片描述
      三、设置Search Paths路径
        1、设置头文件路径Header Search Paths:安装目录/SDKs/iPhoneOS.sdk/SuperMap.framework/Versions/A/Headers
        2、设置动态库路径Library Search Paths:安装目录/SDKs/iPhoneOS.sdk/SuperMap.framework/Versions/A

      四、在静态库工程中编写代码
            1、supermapLib.h文件中

#import <Foundation/Foundation.h>
@class Workspace;
@interface supermapLib : NSObject
{Workspace *workspace;
}
-(Workspace*)openWorkspace;
@end

            2、supermapLib.m文件中

#import "supermapLib.h"
#import "SuperMap.h"
@implementation supermapLib
-(Workspace*)openWorkspace
{@try{workspace=[[Workspace alloc]init];DatasourceConnectionInfo *info=[[DatasourceConnectionInfo alloc]init];info.engineType=ET_BAIDU;info.server=@"http://map.baidu.com";[workspace.datasources open:info];return workspace;}@catch (NSException *exception) {}}
@end

      五、编译工程,会生成一个libsupermaplib.a的静态库包和include头文件。
这里写图片描述
      六、新建一个Single View Application工程来测试静态库,命名为SmLibTest,按照SuperMap要求的工程配置进行配置,添加libstdc++.6.0.9.tbd库;其中SuperMap.framework不需要再添加到工程中,SuperMap.bundle资源依然需要放置到工程中。
      七、将libsupermaplib静态库include头文件以及SuperMap的头文件加入到工程中。
这里写图片描述
      八、将生成的libsupermaplib.a的静态库加入到工程中,并拖拽到工程中。
这里写图片描述
      九、在SmLibTest中添加如下代码
            1、ViewController.h文件中

#import <UIKit/UIKit.h>
#import <SuperMap.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet MapControl *mapControl;
@end 

            2、ViewController.m文件中

#import "ViewController.h"
#import "supermapLib.h"
@implementation ViewController
@synthesize mapControl;
- (void)viewDidLoad {[super viewDidLoad];[self openMap];// Do any additional setup after loading the view, typically from a nib.
}
-(void)openMap
{mapControl=[[MapControl alloc]initWithFrame:[[UIScreen mainScreen]bounds]];[self.view addSubview:mapControl];[mapControl mapControlInit];supermapLib *superlib=[[supermapLib alloc]init];Workspace *workspace=[superlib openWorkspace];[mapControl.map setWorkspace:workspace];Datasource* baiduDatasource=[workspace.datasources get:0];[mapControl.map.layers addDataset:[baiduDatasource.datasets get:0] ToHead:NO];  
}

      十、编译运行程序,效果如下图所示
这里写图片描述

这篇关于浅析SuperMap iMobile 8C for iOS打包静态库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273260

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-server http-server 是一个轻量级的命令行工具,允许你快速启动一个静态文件服务器。 安装 npm install -g http-server

android6/7 system打包脚本

1.android5打包system就是网站上常见的制作ROM必备的解包打包system脚本 指令如下:mkuserimg.sh -s out/target/product/$TARGET_PRODUCT/system out/target/product/$TARGET_PRODUCT/obj/PACKAGING/systemimage_intermediates/system.img