浅析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

相关文章

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

浅析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 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。