POST
|
Hi, I'm trying to run a map application on a 4k display (resolution 3840 × 2160) but the frame rate is very low.. The map is nearly unusable. The sample application in the Runtime SDK has the same problems, even on the "Basic Map" demo. I'm using the 10.2.4 Runtime on Windows 10 and the RenderEngine is DirectX. OpenGL crashes with an access violation. Is there a way to improve the overall performance of the Runtime? Greetings, Gabriel
... View more
08-24-2016
04:05 AM
|
0
|
0
|
268
|
POST
|
If tried that. The markers in the pictures are calculated that way. The width differs greatly for different fonts. The font size corresponds with height not width. The font size in the pictures is 48. I've also tried to use the Java2D FontMetrics to calculate the width but the results vary from the displayed text.
... View more
08-21-2015
02:29 AM
|
0
|
0
|
275
|
POST
|
Is there a way to get or calculate the displayed width of a TextSymbol? The TextSymbol.getWidth() method returns 0 because the geometry is a point. Im trying to draw selection markers around the symbol.
... View more
08-20-2015
08:23 AM
|
0
|
2
|
2863
|
POST
|
After updating to 10.2.4 removing a Layer from the LayerList of a JMap forces all WmsDynamicMapServiceLayer to reload. Is this intentional behaviour or a bug? In the appendix is an example. It is based on the LayerList sample from the Runtime samples. If a key is pressed one layer is removed and the wms layer flickers.
... View more
05-13-2015
07:09 AM
|
0
|
0
|
2669
|
POST
|
My final solution is this: List<Point> coords = new ArrayList<Point>(); LayerList list = map.getLayers(); for (int i = list.size() - 1; i >= 0; i--) { if (list.get(i) instanceof GraphicsLayer) { GraphicsLayer layer = (GraphicsLayer) list.get(i); int[] graphicIDs = layer.getGraphicIDs(map.getWidth() / 2, map.getHeight() / 2, Math.max(map.getWidth(), map.getHeight())/2); if (graphicIDs != null && graphicIDs.length > 0) { int[] ids = graphicIDs; for (int j = 0; j < ids.length; j++) { Graphic graphic = layer.getGraphic(ids ); com.esri.core.geometry.Geometry geometry = graphic.getGeometry(); if (com.esri.core.geometry.Geometry.isPoint(geometry.getType().a())) { Point p = (Point) geometry; Envelope extent = map.getExtent(); if (extent.contains(p)) { Point screenPoint = map.toScreenPoint(p); coords.add(screenPoint); } } } } } } This works, but with with over 10000 objects on screen it takes a lot of time. It would be nice if the javadoc for getGraphicIDs(float x, float y, int tolerance) mentioned that the search tolerance is used for the sides of a square and not as radius for a circle.
... View more
09-04-2014
11:04 PM
|
0
|
1
|
463
|
POST
|
Yes I meant the current map extent, like in this screenshot. The Icons are in different GraphicsLayer. The method I tried is to iterate over all graphics layer, iterate over all graphics, check if the geometry is in the current extent and then call the JMap.toScreenPoint() method. Here is a snippet of the code: List<Point> coords = new ArrayList<Point>(); LayerList list = map.getLayers(); for (int i = list.size() - 1; i >= 0; i--) { if (list.get(i) instanceof GraphicsLayer) { GraphicsLayer layer = (GraphicsLayer) list.get(i); if (layer.getGraphicIDs() != null && layer.getGraphicIDs().length > 0) { int[] ids = layer.getGraphicIDs(); for (int j = 0; j < ids.length; j++) { Graphic graphic = layer.getGraphic(ids ); com.esri.core.geometry.Geometry geometry = graphic.getGeometry(); if (com.esri.core.geometry.Geometry.isPoint(geometry.getType().a())) { Point p = (Point) geometry; Envelope extent = map.getExtent(); if (extent.contains(p)) { Point screenPoint = map.toScreenPoint(p); coords.add(screenPoint); } } } } } This works, but i hope there is an easier and perhaps faster way. Particularly for other geometry objects like polylines and polygons. I need to call this method after every change of the map extent or change in the data.
... View more
08-19-2014
11:44 PM
|
0
|
3
|
463
|
POST
|
Is there an easy way to get the onScreen-coordinates of all visible Graphics objects?
... View more
08-19-2014
01:51 AM
|
0
|
5
|
2953
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|