POST
|
Could you add some details about what your workflow is? Is it simply adding graphics on top of each other with the same symbology? A code snippet that illustrates the issue so we can reproduce it would be great.
Thanks,
Lucas
... View more
2 weeks ago
|
0
|
0
|
106
|
POST
|
We currently don't listen to those values for the duration, but I can add an enhancement request to consider respecting those values. I'll need to discuss with the team on the feasibility of this.
... View more
4 weeks ago
|
0
|
0
|
60
|
POST
|
Hi Justin, This can be achieved with Multilayer (CIM) symbols. You could take a few different avenues to get the end result. The simplest port of the JS samples is to take the Symbol JSON they used and use it in Maps SDK. Here's an example I tested with: auto builder = new PolylineBuilder(SpatialReference::wgs84(), this);
builder->addPoint(0,0);
builder->addPoint(0,10);
builder->addPoint(0,20);
builder->addPoint(30,30);
builder->addPoint(50,50);
builder->addPoint(60,50);
auto g = new Graphic(builder->toGeometry(), this);
auto go = new GraphicsOverlay(this);
go->graphics()->append(g);
m_mapView->graphicsOverlays()->append(go);
auto symbol = R"({
"type": "CIMSymbolReference",
"symbol": {
"type": "CIMLineSymbol",
"symbolLayers": [{
"type": "CIMSolidStroke",
"enable": "true",
"width": 1,
"color": [0, 0, 0, 255]
},
{
"type": "CIMVectorMarker",
"enable": "true",
"size": 5,
"markerPlacement": {
"type": "CIMMarkerPlacementAlongLineSameSize",
"endings": "WithMarkers",
"placementTemplate": [19.5],
"angleToLine": "true"
},
"frame": {
"xmin": -5,
"ymin": -5,
"xmax": 5,
"ymax": 5
},
"markerGraphics": [{
"type": "CIMMarkerGraphic",
"geometry": {
"rings": [
[
[-8, -5.47],
[-8, 5.6],
[1.96, -0.03],
[-8, -5.47]
]
]
},
"symbol": {
"type": "CIMPolygonSymbol",
"symbolLayers": [{
"type": "CIMSolidFill",
"enable": "true",
"color": [0, 0, 0, 255]
}]
}
}]
}]
}
})";
auto s = Symbol::fromJson(symbol);
g->setSymbol(s); You could further modify the CIM symbol JSON to your liking by referencing the CIM spec, or using a tool like the online CIM Symbol Builder. If you don't want to sling JSON around, you could use our MultilayerSymbol API, which provides a subset of the CIM spec in a higher level easier to use API, but it might not have all the functionality you need. A final option would be to use Pro to create a Symbol that you like, and export that to a style file that you can reference in your app. Here's a blog I wrote about this pattern.
... View more
07-26-2024
01:59 PM
|
1
|
2
|
273
|
POST
|
Good question. I had to do a little digging on this one... Currently, the only way to create custom item resource caches is through portal items, so a workflow such as the following should get you on the right track. I tested it and was successful: Publish your vtpk as a service. I used ArcGIS Online and uploaded as a hosted service, but you could publish to enterprise. Make sure to enable offline export capabilities Use the vector tile style editor to make edits to the style. They've got some good tutorials to showcase how you can edit the style. Save your edits as a new item Using the newly created item, call the ExportVectorTileTask:: exportStyleResourceCache to export the resource cache - https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-exportvectortilestask.html#exportStyleResourceCache Export how every many resource caches you want and place them next to your VTPK. The resource cache will be a folder with a json file and a zip. Construct your local vector tile layer using the vector tile cache and the new item resource cache VectorTileCache* vtc = new VectorTileCache("/Users/<username>/Desktop/nz_bndl.vtpk", this);
ItemResourceCache* irc = new ItemResourceCache("/Users/<username>/Desktop/nz_bndl_resourcecache1", this);
ArcGISVectorTiledLayer* lyr = new ArcGISVectorTiledLayer(vtc, irc, this);
Basemap* bmap = new Basemap(lyr, this);
m_map = new Map(bmap, this);
... View more
07-09-2024
12:02 PM
|
0
|
1
|
210
|
POST
|
From the description, it seems like labels with leader lines might suit your use case well. Leader lines are unfortunately not supported in the Maps SDK yet, but it is something we have had a lot of requests for. If you have access to ArcGIS Pro and can try to prototype Label callouts with leader lines, that would be useful to know if that satisfies your requirements. If so, if you could message me some details about your organization/app so I can add it to our tracking issue internally, that would be great. The other avenue as you mentioned is using the Callout. Unfortunately, it is pretty tightly coupled to having 1 display at a time. However, since it is open source, you do have the option of poking around and seeing if you get something to suit your needs. I have some ideas that may or may not help get you on the right track. One thing you can do with the Callout is set the contentItem to display whatever you want (doesn't need to be tied to title/description properties) Callout {
contentItem: Column {
spacing: 10
anchors.fill: parent
Text {
text: "Custom Callout"
font.bold: true
font.pixelSize: 18
}
Text {
text: "This is a custom callout"
}
}
palette.windowText: "black"
} This solves the display customization question, but the remaining problem at this point is that the location the callout displays at is tied to the location provided from the callout data. Since we want multiple callouts, we can't rely on that single location. However, Callout itself is just a QML Pane, so you can theoretically display it wherever you like (as QML allows). The nice thing that CalloutData does for you is that it converts the map coordinate to a screen coordinate for you, and it updates whenever the viewpoint changes or the data changes. However, you could theoretically explicitly set the XY location of the Callout, and update each at any given interval. Here is a contrived example of showing 2 callouts at the same time at a different location. The bit you'd need to work out is updating the various callouts to be in the right place all the time. This could involve some custom app code or even modification of the Callout.qml code itself. import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Esri.ArcGISRuntime
import Esri.ArcGISRuntime.Toolkit
import DemoApp
DemoPage {
mapViewContents: Component {
MapView {
id:view
Callout {
id: callout
calloutData : view.calloutData //binding to parent. Any change is reflected on this
accessoryButtonVisible: false
implicitHeight: 100
leaderPosition: Callout.LeaderPosition.Automatic
x: 200
y: 200
maxWidth: 250
background: Rectangle {
radius: 5
border.width: 2
border.color: "black"
}
contentItem: Column {
spacing: 10
anchors.fill: parent
Text {
text: "Custom Callout"
font.bold: true
font.pixelSize: 18
}
Text {
text: "This is a custom callout"
}
}
palette.windowText: "black"
}
Callout {
id: callout2
calloutData : view.calloutData //binding to parent. Any change is reflected on this
accessoryButtonVisible: false
implicitHeight: 100
leaderPosition: Callout.LeaderPosition.Automatic
x: 350
y: 350
maxWidth: 250
background: Rectangle {
radius: 5
border.width: 2
border.color: "black"
}
contentItem: Column {
spacing: 10
anchors.fill: parent
Text {
text: "Custom Callout 2"
font.bold: true
font.pixelSize: 18
}
Text {
text: "This is a custom callout 2"
}
}
palette.windowText: "black"
}
CalloutDemo {
geoView: view
}
}
}
} (modification of https://github.com/Esri/arcgis-maps-sdk-toolkit-qt/blob/main/uitools/examples/cpp_quick/src/demos/CalloutDemoForm.qml) I wish we had something that worked for you right out of the box, but hopefully this gives you some ideas to pursue.
... View more
07-02-2024
12:33 PM
|
1
|
0
|
202
|
POST
|
For question 3, you can set a GeometryEditorStyle with GeometryEditorTool.setStyle (VertexTool is a subclass of GeometryEditorTool). This allows you to configure all the various symbols such as the vertices, lines, feedback, etc.
... View more
06-12-2024
06:45 AM
|
0
|
0
|
504
|
POST
|
something like the following should do the trick // setup interaction configuration
auto conf = new Esri::ArcGISRuntime::InteractionConfiguration(m_mapView);
conf->setAllowSelection(false);
// set the config on the tool
auto vertexTool = new Esri::ArcGISRuntime::VertexTool(this);
vertexTool->setConfiguration(conf);
// set the tool on the editor
geometryEditor->setTool(vertexTool); As for the second issue - that sounds like some logic you will need to switch up. I'm not sure of your full workflow or why you want to store the lat/long in a vector, but maybe you don't need to? The GeometryEditor has a geometryChanged signal. Maybe you only want to add the last click when that emits? Or maybe you can just get the geometry property when the signal emits, and then access the geometry's list of points/access the json/etc?
... View more
06-04-2024
01:23 PM
|
0
|
0
|
527
|
POST
|
Will setting some combination of the InteractionConfiguration properties get you what you need? From what you describe, I think setting vertex selection to false would get you what you need - https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-interactionconfiguration.html#setAllowVertexSelection
... View more
06-03-2024
02:39 PM
|
0
|
2
|
547
|
IDEA
|
We are pleased to announce that we now have a public beta available for ArcGIS Maps SDK for Flutter! https://www.esri.com/arcgis-blog/products/developers/announcements/announcing-arcgis-maps-sdk-for-flutter-beta/
... View more
04-17-2024
02:29 PM
|
0
|
0
|
158
|
POST
|
@Paige - we don't have CMake support in the toolkit right now. Another request was logged here https://github.com/Esri/arcgis-maps-sdk-toolkit-qt/issues/602. We are looking at adding support in an upcoming release. In the meantime (it's admittedly not a great solution) but you might be able to build up your own CMakeLists.txt based on the existing qmake PRI.
... View more
03-26-2024
11:04 AM
|
1
|
1
|
780
|
POST
|
Couple of things to consider: - does the graphics overlay have the surface placement mode set? Here's an example - https://github.com/Esri/arcgis-maps-sdk-samples-qt/blob/main/ArcGISRuntimeSDKQt_QMLSamples/Scenes/SetSurfacePlacementMode/SetSurfacePlacementMode.qml Since you've set z values, you probably want absolute. Here is the doc - https://developers.arcgis.com/qt/qml/api-reference/enums-surfaceplacement.html . - Have you set the spatial reference of your polygon builder to match whatever the centerX and centerY variables are using?
... View more
03-22-2024
07:59 AM
|
1
|
1
|
443
|
POST
|
We can log an enhancement for that if you like. Otherwise, you can log an enhancement through Esri Support (or through your distributor if you are international). Ultimately, factors that influence whether we prioritize something like this include number of people impacted, business case, whether there are suitable workarounds, etc. If you can, please email me (ldanzinger@esri.com) with details about your company, project, etc. Perhaps we could also setup a call with our product managers to better understand your use cases and what other priorities you have.
... View more
01-16-2024
12:27 PM
|
0
|
0
|
879
|
POST
|
Thanks for the video, I understand better what you mean now. Unfortunately, the resize and snap effect you see is part of the implementation. We use a different rendering path for ENC due to the large, complex features. This is similar to our "static" rendering mode for graphics (as opposed to dynamic) https://developers.arcgis.com/qt/qml/api-reference/enums-graphicsrenderingmode.html https://github.com/Esri/arcgis-maps-sdk-samples-qt/tree/main/ArcGISRuntimeSDKQt_CppSamples/Layers/FeatureLayerRenderingModeMap
... View more
01-12-2024
12:26 PM
|
0
|
0
|
935
|
POST
|
Have you looked at using setViewpoint method that takes an AnimationCurve - https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-mapview.html#setViewpointAsync? You could listen to the various mouse/wheel signals on the mapview and implement your own custom logic https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-mapquickview.html
... View more
01-11-2024
03:16 PM
|
0
|
0
|
985
|
POST
|
Hey Troy- Thanks for the feedback. I've logged an enhancement for us to improve the doc. Regarding the other points of improving the app, those are all great ideas. I'll pass those onto Andy as a possible future blog ideas. -Lucas
... View more
01-10-2024
07:56 AM
|
0
|
0
|
372
|
Title | Kudos | Posted |
---|---|---|
1 | 07-26-2024 01:59 PM | |
1 | 07-02-2024 12:33 PM | |
1 | 03-26-2024 11:04 AM | |
1 | 03-22-2024 07:59 AM | |
2 | 12-20-2023 07:38 AM |
Online Status |
Offline
|
Date Last Visited |
a week ago
|