This action will force synchronization from gis-luq/RuntimeViewer, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
组件式开发框架,兼容手机、平板多种设备。
项目采用插件化结构设计,文件夹架构说明如下
<?xml version="1.0" ?>
<!--
App配置文件
-->
<configuration>
<!--Runtime 许可-->
<runtimekey license="许可信息"/>
<!--系统工作空间目录-->
<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实现点、线、面要素添加,属性编辑,多媒体附件挂接(照片、视频、录音)
实现功能包括:坐标获取、长度计算、面积计算
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。