同步操作将从 gis-luq/RuntimeViewer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
组件式开发框架,兼容手机、平板多种设备。
项目采用插件化结构设计,文件夹架构说明如下
<?xml version="1.0" ?>
<!--
App配置文件
-->
<configuration>
<!--Runtime 许可-->
<runtimekey license="runtimestandard,101,rud406482271,none,KGC63PJS3MLFLMZ59141"/>
<!--系统工作空间目录-->
<workspace path="/RuntimeViewer"/>
<!--widget组件列表-->
<widgetcontainer>
<widget label="图层管理" classname="com.gisluq.runtimeviewer.Widgets.LayerManagerWidget.LayerManagerWidget" config=""/>
<widget label="工程信息" classname="com.gisluq.runtimeviewer.Widgets.ProjectInfoWidget.ProjectInfoWidget" config=""/>
<widget label="Hello World" classname="com.gisluq.runtimeviewer.Widgets.HelloWorldWidget" config=""/>
</widgetcontainer>
</configuration>
说明:
在Widgets目录下创建HelloWorldWidget.java文件并添加以下内容。 建议类名的命名规则为 [业务名称+Widget].java 以保证统一。
/**
* 测试用组件
* Created by gis-luq on 2018/3/10.
*/
public class HelloWorldWidget extends BaseWidget {
public View mWidgetView = null;//
/**
* 组件面板打开时,执行的操作
* 当点击widget按钮是, WidgetManager将会调用这个方法,面板打开后的代码逻辑.
* 面板关闭将会调用 "inactive" 方法
*/
@Override
public void active() {
super.active();//默认需要调用,以保证切换到其他widget时,本widget可以正确执行inactive()方法并关闭
super.showWidget(mWidgetView);//加载UI并显示
super.showMessageBox(super.name);//显示组件名称
}
/**
* widget组件的初始化操作,包括设置view内容,逻辑等
* 该方法在应用程序加载完成后执行
*/
@Override
public void create() {
LayoutInflater mLayoutInflater = LayoutInflater.from(super.context);
//设置widget组件显示内容
mWidgetView = mLayoutInflater.inflate(R.layout.widget_view_helloworld,null);
}
/**
* 组件面板关闭时,执行的操作
* 面板关闭将会调用 "inactive" 方法
*/
@Override
public void inactive(){
super.inactive();
}
}
在android工程的layout文件夹下创建widget_view_helloworld.xml文件,并添加如下内容。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="信息" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="目标定位"
android:id="@+id/widget_view_helloworld_button2"
android:background="@drawable/ic_touch_btn"
android:textColor="@color/white" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
assents/config.xml下添加以下内容:
<widget label="Hello World" classname="com.gisluq.runtimeviewer.Widgets.HelloWorldWidget" config=""/>
widget整体效果
每一个widget扩展了父类BaseWidget。使用以下方法就可以获取并操作mapview对象中的内容。
super.mapView.getMap().getBasemap().getBaseLayers();//获取底图图层
super.mapView.getMap().getOperationalLayers();//获取业务图层
widget通信通过引入EventBus 3.0实现。基本使用如下:
EventBus.getDefault().register(this);//订阅
EventBus.getDefault().unregister(this);//解除订阅
EventBus.getDefault().post(new MessageEvent("事件说明"));
@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行
public void onDataSynEvent(MessageEvent event) {
Log.e(TAG, "event---->" + event.getMessage());
//通过判断message内容执行不同方法
}
ThreadMode总共四个:
事件的优先级类似广播的优先级,优先级越高优先获得消息
@Subscribe(threadMode = ThreadMode.MAIN,priority = 100) //在ui线程执行 优先级100
public void onDataSynEvent(DataSynEvent event) {
Log.e(TAG, "event---->" + event.getCount());
}
更多内容请参考EventBus 3.0详细相关材料:https://www.cnblogs.com/whoislcj/p/5595714.html
实现功能包括:基础底图数据加载、业务图层加载(目前仅支持Shapefile),图层开启关闭、透明度控制、图例等。
文件内容如下,相关底图离线文件放在basemap.json所在文件夹即可。
{
"baselayers": [
{
"name": "离线vtpk",
"type": "LocalVectorTilePackage",
"path": "china.vtpk",
"layerIndex": 1,
"visable": true,
"opacity": 1
},
{
"name": "彩色中文含兴趣点版中国基础地图",
"type": "OnlineTiledMapServiceLayer",
"path": "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer",
"layerIndex": 2,
"visable": true,
"opacity": 1
},
{
"name": "午夜蓝色中文不含兴趣点版中国基础地图",
"type": "OnlineTiledMapServiceLayer",
"path": "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer",
"layerIndex": 3,
"visable": false,
"opacity": 1
}
]
}
实现功能包括:图查属性、属性查图
实现功能包括:基于shapefile实现点、线、面要素添加,属性编辑,多媒体附件挂接(照片、视频、录音)
实现功能包括:坐标获取、长度计算、面积计算
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。