POST
|
This looks like it could be a viable albeit cumbersome approach for static content. As the majority of our labels are based on dynamic content this would not be sufficient for our use-case. The features do need to be generated and manipulated at runtime as per Callouts. The manipulation necessary is at minimum: Adding one or more labels Removing one or more labels Replacing the text within a label Moving a label to a new location These labels move a lot, to the extent that the position is also dependent on map centreing and zoom level. Thanks again
... View more
06-19-2015
01:45 AM
|
0
|
0
|
933
|
POST
|
For the benefit of other readers this discussion is continued on Now CalloutPopupWindow is deprecated, what is the alternative?
... View more
06-13-2015
07:19 AM
|
0
|
0
|
594
|
POST
|
That would be the original post I linked to here. So if I understand this suggestion correctly you recommend estimating the bounds of the TextSymbol, generating a drawable suitable to these bounds, and then assigning that as a PictureMarkerSymbol underneath the TextSymbol? It that is the case it would be helpful for TextSymbol to provide its bounds directly. I have previously attempted to get TextSymbol bounds from the API but to no avail. Although usable, estimating the bounds from the font size and text does not give accurate results.
... View more
06-13-2015
07:18 AM
|
0
|
2
|
933
|
POST
|
The objective was to display persistent labels for multiple features simultaneously. Anything which involves only showing details for a single feature is not suitable for us. We do already have a solution but are looking for alternative means / future API enhancements to facilitate this. Thanks
... View more
06-12-2015
01:17 AM
|
0
|
0
|
933
|
POST
|
You are correct the aim is to display custom metadata on screen for multiple features simultaneously, but needs to work entirely offline. This would predominantly be used for labelling in a way similar to google maps pins (as per the image in Android Google Map: How to Draw pin which have text like (1,2,3,4,5..etc)? - Stack Overflow but with arbitrary text in the labels rather than just a large single letter). As these labels can be quite small this is not exclusive to large tablet displays. As described in the previously linked forum post it is not well supported by CalloutPopupWindow or Callout. If labels supported borders, to increase contrast, then this would be a step in the right direction but unfortunately they do not. Currently we have to generate screen coordinates for our border which are then projected back to map coordinates for use with Polygons. Labels are then displayed on-top of the Polygons to ensure readability and point the label to the related location. I suspect this could be done far more efficiently elsewhere in the rendering pipeline, avoiding two unnecessary projection steps per point per polygon. As a side-note, some of our indicators are associated with lines on the map. The position of these indicators along the associated line is derived from the users current view of the map, to ensure the indicator is shown on-screen when possible. To achieve this we have to hook pan and zoom events, but unfortunately zoom events do not fire reliably. See the originally linked forum post and the associated breakout post: OnZoomListener.postAction does not fire reliably at the end of a series of zoom actions. We currently have a reasonably workable solution but the performance and UX could be improved by changes to the SDK. From a development perspective the barrier to entry for this functionality is high. Thank you for the response and look forward to hearing from you
... View more
06-12-2015
01:13 AM
|
0
|
0
|
933
|
POST
|
As unanswered in Various issues while attempting to show custom metadata on map / hook gestures in ArcGIS Runtime SDK for Android From the developer/users perspective there is little reason for the map centre to change with zoom. This seems like a clear conflict between requested and actual values
... View more
05-20-2015
02:24 AM
|
0
|
1
|
3640
|
POST
|
As unanswered in Various issues while attempting to show custom metadata on map / hook gestures in ArcGIS Runtime SDK for Android OnZoomListener.postAction does not fire reliably at the end of a series of zoom actions, particularly if zoom is triggered during an existing zoom animation. Is there intention to add reliable events for zoom/pan which consistently fire when zoom/pan is actioned and completes, no matter whether the action is triggered programatically, by normal user interaction, or by extended handling of gestures?
... View more
05-20-2015
02:20 AM
|
0
|
0
|
3767
|
POST
|
As unanswered in Various issues while attempting to show custom metadata on map / hook gestures in ArcGIS Runtime SDK for Android CalloutPopupWindow is deprecated, but was the only means of adding multiple callouts simultaneously. What is the recommended means of achieving this functionality? More generally, how should developers display custom metadata on offline maps at runtime for multiple features simultaneously? TextSymbol is not appropriate as readability is dependent on the map colour beneath it. The current solution is a composite symbol including a polygon projected from screen to map coordinates which is unnecessarily costly. Furthermore this requires some unpleasant calculations to estimate font height. There must be a better approach available in the existing API.
... View more
05-20-2015
02:17 AM
|
0
|
8
|
4776
|
POST
|
As there has been no feedback I will re-post each of the above problems in turn
... View more
05-20-2015
02:13 AM
|
0
|
2
|
594
|
POST
|
Could you please clarify where/whether this is described in the actual documentation.
... View more
05-14-2015
01:36 AM
|
0
|
0
|
1341
|
POST
|
Fixed using normalizeCentralMeridian from the latest version of the SDK. See bottom half of this page for more details: Enable wrap around—ArcGIS Runtime SDK for Android | ArcGIS for Developers
... View more
03-24-2015
04:35 AM
|
0
|
0
|
691
|
POST
|
Steps to reproduce: Load a world map with the following spatial reference: PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]] Enable wrap-around at the 180 degree meridian Center the map on the 180 degree meridian at the equator (near baker island), configuring the map extent so the bottom left and top right corner are as follows: bottomLeft: Point [m_attributes=[1.9449581424337383E7, -626899.6119120895], m_description=com.esri.core.geometry.VertexDescription@7c5d0f85] topRight: Point [m_attributes=[2.0623654149388406E7, 706162.1279895945], m_description=com.esri.core.geometry.VertexDescription@7c5d0f85] Attempt to extract and convert these points to WGS84, using: Point bottomLeft = mMapView.toMapPoint(0, mMapView.getHeight());
Point topRight = mMapView.toMapPoint(mMapView.getWidth(), 0);
SpatialReference WGS84 = SpatialReference.create(SpatialReference.WKID_WGS84);
Point wgs84BottomLeft = (Point)GeometryEngine.project(bottomLeft, mMap.getSpatialReference(), WGS84);
Point wgs84TopRight = (Point)GeometryEngine.project(topRight, mMap.getSpatialReference(), WGS84); Expected result: Two valid WGS84 points Actual result: wgs84bottomLeft: Point [m_attributes=[174.71856263209403, -5.622489445477077], m_description=com.esri.core.geometry.VertexDescription@7c5d0f85] wgs84topRight: Point [m_attributes=[NaN, NaN], m_description=com.esri.core.geometry.VertexDescription@7c5d0f85] This issue becomes even worse if you move the extent further east, and you can easily get into a situation where both points return NaN.
... View more
03-20-2015
05:44 AM
|
0
|
1
|
4529
|
POST
|
Background to this query: I have a need to display small labels on an offline map backed by a tpk, the data for which is generated at runtime. These labels are each associated with their own GPS coordinate, and require the drawing of text and some border or background to provide contrast against the map behind it. Considered solutions to the overall problem: - A border directly on the text in TextSymbol - not supported, and without an arrow of some kind provides a poor association between the text and the actual location - Callouts - only a single callout is supported, which therefore does not meet requirements - CalloutPopupWindow - deprecated with no alternative offered, and poorly tracks the associated location when the map is panning anyway (very jittery). - Android View located over MapView - poorly tracks associated locations when map is panning (very jittery) - Polygon in screen coordinates around a TextSymbol with an arrow (roughly mimicing a callout) - tracks associated locations well, but scales badly when zoom changes as unlike the text in TextSymbol the polygon size must be specified in GPS coordinates and there is no facility to keep geometries agnostic of zoom level. Of these, the last has seemed the best compromise, but this does mean that zooming in and out has to be handled differently to avoid the outer polygon being at the wrong scale relative to the text. The best approach found so far is to clear all labels at the start of a zoom and re-instate them once zoom completes. This would work fine if not for the following issues. The current problems with the solution so far: - OnZoomListener.postAction does not fire reliably at the end of a series of zoom actions, particularly if zoom is triggered during an existing zoom animation. - This can be somewhat mitigated by overriding the zoomin/out methods on MapView to chain zooms together in sequence, requiring that postAction is fired before triggering the next zoom to commence. However, there is no mechanism to hook into the handling of zoom gestures, and so ultimately it is still possible to trigger a sequence of programmatic zoomin/zoomout events in addition to zooming with gestures which will result in a zoom without an associated postAction firing - giving no opportunity to fix the Polygon geometry. (This approach is still unreliable) - OnPanListener does not provide any mechanism to tell when panning actually ends, from what I can see this listener instead reports user interaction with the MapView equivalent of a GestureOverlayView. This is not sufficient, as the fling gesture does not finish panning until some time after user interaction completes and the postPointerUp event has already fired. - As far as I can tell there is no mechanism to hook into the standard gesture handling without having to re-write it from scratch, noting that MapGestureDetector is deprecated. (See update regarding MapOnTouchListener below) The questions: - How should developers display custom metadata on offline maps at runtime for multiple features simultaneously, in a way which is easily readable regardless of the colour of the map beneath it? - Is there currently a mechanism for hooking into the handling of gestures without requiring custom handling for all gestures? - Is there intention to add reliable events for zoom/pan which consistently fire when zoom/pan is actioned and completes, no matter whether the action is triggered programatically, by normal user interaction, or by extended handling of gestures? - Is there intention to support adding geometries to the map which are relative to screen coordinates, as per the zoom behaviour of TextSymbol? - Is there intention to allow individual gestures to be enabled/disabled? (this is currently possible for the one-finger zoom but nothing else) - Is there intention to fix repeated zoomIn/zoomOut events changing the map centring? Kind regards P.S. these difficulties were found whilst using ArcGIS for Android 10.2.4, the release notes for 10.2.5 do not suggest any relevant changes. Update: I have since found MapOnTouchListener, which is not deprecated and subclassing provides a lot of the gesture control I was looking for Message edited by: Robert Bares, updated to include MapOnTouchListener, strikethrough added for details which have been resolved by this
... View more
03-12-2015
03:06 AM
|
0
|
3
|
4503
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:25 AM
|