In meinem ArcGIS Pro-Addon möchte ich ein .lyr-File in eine Karte laden, aber nur, wenn sie nicht bereits geladen ist. Dies ist der Code, den ich in Arcgis-Desktop verwendet habe: < /p>
public static void LoadDataToArcMap(String layerfilename)
{
IGxLayer pGxLayer = new GxLayerClass();
IGxFile pGxFile = (IGxFile)pGxLayer;
pGxFile.Path = layerfilename;
IMxDocument doc = ArcMap.Document;
IMap map = doc.FocusMap;
Int16 index = 0;
if (map.LayerCount > 0)
{
do
{
ILayer layer = map.get_Layer(index);
index++;
if (layer.Name == pGxLayer.Layer.Name)
return;
}
while (index < map.LayerCount);
}
map.AddLayer(pGxLayer.Layer);
}
< /code>
Aber mit der neuen API finde ich keinen Weg, um den Namen der Ebene (die sich vom Dateinamen unterscheiden kann), ohne ihn in meine Karte zu laden. < /p>
private static void LoadLayer(string layerFilename)
{
Map map = MapView.Active.Map;
//I already tried this but createParams.Item.Name is empty
//var uriNewLayer = new Uri(layerFilename);
//var createParams = new LayerCreationParams(uriNewLayer);
//var newLayerName = createParams.Item.Name;
var newLayerName = "???";
foreach (var layer in map.Layers)
{
if (layer.Name == newLayerName)
{
MessageBox.Show("Layer '" + newLayerName + "' already loaded.");
return;
}
}
Layer newLayer = LayerFactory.Instance.CreateLayer(uriNewLayer, map);
}
In meinem ArcGIS Pro-Addon möchte ich ein .lyr-File in eine Karte laden, aber nur, wenn sie nicht bereits geladen ist. Dies ist der Code, den ich in Arcgis-Desktop verwendet habe: < /p> [code]public static void LoadDataToArcMap(String layerfilename) { IGxLayer pGxLayer = new GxLayerClass(); IGxFile pGxFile = (IGxFile)pGxLayer; pGxFile.Path = layerfilename;
IMxDocument doc = ArcMap.Document; IMap map = doc.FocusMap; Int16 index = 0; if (map.LayerCount > 0) { do {
ILayer layer = map.get_Layer(index); index++; if (layer.Name == pGxLayer.Layer.Name) return; } while (index < map.LayerCount); } map.AddLayer(pGxLayer.Layer); } < /code> Aber mit der neuen API finde ich keinen Weg, um den Namen der Ebene (die sich vom Dateinamen unterscheiden kann), ohne ihn in meine Karte zu laden. < /p> private static void LoadLayer(string layerFilename) {
Map map = MapView.Active.Map;
//I already tried this but createParams.Item.Name is empty //var uriNewLayer = new Uri(layerFilename); //var createParams = new LayerCreationParams(uriNewLayer); //var newLayerName = createParams.Item.Name;
In meinem ArcGIS Pro-Addon möchte ich ein .lyr-File in eine Karte laden, aber nur, wenn sie nicht bereits geladen ist. Dies ist der Code, den ich in Arcgis-Desktop verwendet habe:
public static...
Ich habe ein Skript in ARC Pro ausgeführt, das viele Ebenenfelder, Beschriftungen und Symbologie aus einem Lyx bearbeitet. Es versucht, das Layout in einem PDF zu speichern, aber es wird leer, da die...
Ich habe das Gefühl, eine grundlegende Einschränkung der funktionalen Programmierung zu treffen, fragte mich aber, ob mir jemand das Gegenteil beweisen könnte:
Ich habe einen Weg gefunden, die Einträge von einer Karte auf eine andere Karte zu kopieren, auf der die Zielkarte mehrere Referenzvariablen hat, aber ich vermute, dass sie nicht optimal ist. Gibt es...
Ich suche nach Tools und Befehlen, mit denen ich die Hilfe einer bestimmten Anwendung ändern kann. Wenn ich kann, können Sie mir sagen, wie? Die meisten Closed-Source-Systeme auf Android-Geräten...