Java源码示例:com.nextgis.maplib.map.LayerGroup
示例1
@Override
public void createNewVectorLayer(
final Context context,
final LayerGroup groupLayer,
final Uri uri)
{
String layerName =
FileUtil.getFileNameByUri(context, uri, context.getString(R.string.new_layer));
final int lastPeriodPos = layerName.lastIndexOf('.');
if (lastPeriodPos > 0) {
layerName = layerName.substring(0, lastPeriodPos);
}
if (context instanceof NGActivity) {
NGActivity fragmentActivity = (NGActivity) context;
CreateLocalLayerDialog newFragment = new CreateLocalLayerDialog();
newFragment.setLayerGroup(groupLayer)
.setLayerType(LayerFillService.VECTOR_LAYER)
.setUri(uri)
.setLayerName(layerName)
.setTitle(context.getString(R.string.create_vector_layer))
.setTheme(fragmentActivity.getThemeId())
.show(fragmentActivity.getSupportFragmentManager(), "create_vector_layer");
}
}
示例2
@Override
public void createNewVectorLayerWithForm(
final Context context,
final LayerGroup groupLayer,
final Uri uri)
{
String layerName =
FileUtil.getFileNameByUri(context, uri, context.getString(R.string.new_layer));
final int lastPeriodPos = layerName.lastIndexOf('.');
if (lastPeriodPos > 0) {
layerName = layerName.substring(0, lastPeriodPos);
}
if (context instanceof NGActivity) {
NGActivity fragmentActivity = (NGActivity) context;
CreateLocalLayerDialog newFragment = new CreateLocalLayerDialog();
newFragment.setLayerGroup(groupLayer)
.setLayerType(LayerFillService.VECTOR_LAYER_WITH_FORM)
.setUri(uri)
.setLayerName(layerName)
.setTitle(context.getString(R.string.create_vector_layer))
.setTheme(fragmentActivity.getThemeId())
.show(fragmentActivity.getSupportFragmentManager(), "create_vector_with_form_layer");
}
}
示例3
protected void sync(
LayerGroup layerGroup,
String authority,
SyncResult syncResult)
{
for (int i = 0; i < layerGroup.getLayerCount(); i++) {
if (isCanceled()) {
return;
}
ILayer layer = layerGroup.getLayer(i);
if (layer instanceof LayerGroup) {
sync((LayerGroup) layer, authority, syncResult);
} else if (layer instanceof INGWLayer) {
INGWLayer ngwLayer = (INGWLayer) layer;
String accountName = ngwLayer.getAccountName();
if (!mVersions.containsKey(accountName))
mVersions.put(accountName, NGWUtil.getNgwVersion(getContext(), accountName));
Pair<Integer, Integer> ver = mVersions.get(accountName);
ngwLayer.sync(authority, ver, syncResult);
} else if (layer instanceof TrackLayer) {
((TrackLayer) layer).sync();
}
}
}
示例4
public List<ILayer> getLayersByType(int types)
{
List<ILayer> ret = new ArrayList<>();
if (mMap != null) {
LayerGroup.getLayersByType(mMap, types, ret);
}
return ret;
}
示例5
public List<ILayer> getVectorLayersByType(int types)
{
List<ILayer> ret = new ArrayList<>();
if (mMap != null) {
LayerGroup.getVectorLayersByType(mMap, types, ret);
}
return ret;
}
示例6
public void createNewNGWLayer(
final Context context,
final LayerGroup layerGroup)
{
if (context instanceof NGActivity) {
AccountManager accountManager = AccountManager.get(context);
Connections connections = SelectNGWResourceDialog.fillConnections(context, accountManager);
if (connections.getChildrenCount() == 1) {
startNGWResourceActivity(context, (Connection) connections.getChild(0), layerGroup);
} else {
NGActivity fragmentActivity = (NGActivity) context;
final SelectNGWResourceDialog newFragment = new SelectNGWResourceDialog();
newFragment.setLayerGroup(layerGroup)
.setTypeMask(
Connection.NGWResourceTypePostgisLayer |
Connection.NGWResourceTypeVectorLayer |
Connection.NGWResourceTypeRasterLayer |
Connection.NGWResourceTypeWMSClient |
Connection.NGWResourceTypeWebMap)
.setConnectionListener(new NGWResourcesListAdapter.OnConnectionListener() {
@Override
public void onConnectionSelected(Connection connection) {
startNGWResourceActivity(context, connection, layerGroup);
newFragment.dismiss();
}
@Override
public void onAddConnection() {
newFragment.onAddAccount(context);
}
})
.setTitle(context.getString(R.string.choose_layers))
.setTheme(fragmentActivity.getThemeId())
.show(fragmentActivity.getSupportFragmentManager(), "create_ngw_layer");
}
}
}
示例7
private void startNGWResourceActivity(Context context, Connection connection, LayerGroup layerGroup) {
Intent intent = new Intent(context, SelectNGWResourceActivity.class);
Connections connections = new Connections(context.getString(R.string.ngw_accounts));
connections.add(connection);
intent.putExtra(SelectNGWResourceActivity.KEY_TASK, SelectNGWResourceActivity.TYPE_ADD);
intent.putExtra(SelectNGWResourceActivity.KEY_CONNECTIONS, connections);
intent.putExtra(SelectNGWResourceActivity.KEY_RESOURCE_ID, connections.getChild(0).getId());
intent.putExtra(SelectNGWResourceActivity.KEY_GROUP_ID, layerGroup.getId());
context.startActivity(intent);
}
示例8
public void createNewRemoteTMSLayer(
final Context context,
final LayerGroup groupLayer)
{
if (context instanceof NGActivity) {
NGActivity fragmentActivity = (NGActivity) context;
CreateFromQMSLayerDialog newFragment = new CreateFromQMSLayerDialog();
newFragment.setLayerGroup(groupLayer)
.setTitle(context.getString(R.string.create_qms_layer))
.setTheme(fragmentActivity.getThemeId())
.show(fragmentActivity.getSupportFragmentManager(), "create_qms_layer");
}
}
示例9
protected void checkTracksLayerExist()
{
List<ILayer> tracks = new ArrayList<>();
LayerGroup.getLayersByType(mMap, Constants.LAYERTYPE_TRACKS, tracks);
if (tracks.isEmpty()) {
String trackLayerName = getString(R.string.tracks);
TrackLayerUI trackLayer =
new TrackLayerUI(getApplicationContext(), mMap.createLayerStorage(LAYER_TRACKS));
trackLayer.setName(trackLayerName);
trackLayer.setVisible(true);
mMap.addLayer(trackLayer);
mMap.save();
}
}
示例10
public CreateRemoteTMSLayerDialog setLayerGroup(LayerGroup groupLayer)
{
mGroupLayer = groupLayer;
return this;
}
示例11
public CreateLocalLayerDialog setLayerGroup(LayerGroup groupLayer)
{
mGroupLayer = groupLayer;
return this;
}
示例12
public SelectNGWResourceDialog setLayerGroup(LayerGroup groupLayer)
{
mGroupLayer = groupLayer;
return this;
}
示例13
public CreateFromQMSLayerDialog setLayerGroup(LayerGroup groupLayer) {
mGroupLayer = groupLayer;
return this;
}
示例14
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("LayerFillService", "Received start id " + startId + ": " + intent);
if (intent != null) {
String action = intent.getAction();
if (action != null && !TextUtils.isEmpty(action)) {
switch (action) {
case ACTION_ADD_TASK:
int layerGroupId = intent.getIntExtra(KEY_LAYER_GROUP_ID, Constants.NOT_FOUND);
mLayerGroup = (LayerGroup) MapBase.getInstance().getLayerById(layerGroupId);
int layerType = intent.getIntExtra(KEY_INPUT_TYPE, Constants.NOT_FOUND);
Bundle extra = intent.getExtras();
switch (layerType) {
case VECTOR_LAYER:
mQueue.add(new VectorLayerFillTask(extra));
break;
case VECTOR_LAYER_WITH_FORM:
mQueue.add(new UnzipForm(extra));
break;
case TMS_LAYER:
mQueue.add(new LocalTMSFillTask(extra));
break;
case NGW_LAYER:
mQueue.add(new NGWVectorLayerFillTask(extra));
break;
}
if(!mIsRunning){
startNextTask();
}
return START_STICKY;
case ACTION_STOP:
mQueue.clear();
mIsCanceled = true;
startNextTask();
break;
case ACTION_SHOW:
mProgressIntent.putExtra(KEY_STATUS, STATUS_SHOW).putExtra(KEY_TITLE, mNotifyTitle);
sendBroadcast(mProgressIntent);
break;
}
}
}
return START_STICKY;
}
示例15
@Override
public void createNewLocalTMSLayer(
final Context context,
final LayerGroup groupLayer,
final Uri uri)
{
String ext = "zip";
String layerName =
FileUtil.getFileNameByUri(context, uri, context.getString(R.string.new_layer));
final int lastPeriodPos = layerName.lastIndexOf('.');
if (lastPeriodPos > 0) {
ext = layerName.substring(lastPeriodPos).toLowerCase();
layerName = layerName.substring(0, lastPeriodPos);
}
if (context instanceof NGActivity) {
NGActivity fragmentActivity = (NGActivity) context;
if (ext.equals(".ngrc")) {
Intent intent = new Intent(context, LayerFillService.class);
intent.setAction(LayerFillService.ACTION_ADD_TASK);
intent.putExtra(LayerFillService.KEY_URI, uri);
intent.putExtra(LayerFillService.KEY_INPUT_TYPE, LayerFillService.TMS_LAYER);
intent.putExtra(LayerFillService.KEY_LAYER_GROUP_ID, groupLayer.getId());
LayerFillProgressDialogFragment.startFill(intent);
return;
}
AtomicReference<Uri> temp = new AtomicReference<>(uri);
if (MapUtil.isZippedGeoJSON(context, temp)) {
createNewVectorLayer(context, groupLayer, temp.get());
return;
}
CreateLocalLayerDialog newFragment = new CreateLocalLayerDialog();
newFragment.setLayerGroup(groupLayer)
.setLayerType(LayerFillService.TMS_LAYER)
.setUri(uri)
.setLayerName(layerName)
.setTitle(context.getString(R.string.create_tms_layer))
.setTheme(fragmentActivity.getThemeId())
.show(fragmentActivity.getSupportFragmentManager(), "create_tms_layer");
}
}