POST
|
Hello, Actually I have same problem while developing my app. The real problem is on android side, when I pan the map, every vector tile come from server properly. I don't want this behaviour, I would like to use cache policy for exampl, when vector map is not changed, I would like to show user cached version. How could I catch this behaviour ? We catched this behaviour on iOS side like Muhammet İkbal Yaşar mentioned but Android side we couldn't able to get it. Any help would make us appreciated. Thanks at all
... View more
10-11-2020
06:06 AM
|
0
|
0
|
1456
|
POST
|
Hello Dear developers, I am developing an Android app that uses Esri Android SDK 100.1.0 version. In order to not writing credentials in code we're using basemap links like below : https://xyzproxy.abc.gov.tr/proxy.ashx?https://gismap.abc.gov.tr/arcgis/rest/services/Satellite_2017_WM/MapServer When using Esri Android 100.1.0 version, everything works like a charm. After updating SDK to 100.2.1 basemap is not loading and failed error say that invalid start of json - expecting { or [ How can I resolve this issue. Thanks for all. doneill-esristaff
... View more
03-06-2018
04:25 AM
|
0
|
1
|
1896
|
POST
|
Hello Everyone, The Android SDK with version 100 and higher is not compatible with phones that have x86 architecture. When I tried to open the app which developed with Esri Android 100.1.0 it can't open from x86 devices but I am able to open and run same application from x64 device. Could you guys considering add a support for this ? I remember that version v10.2 has this issue too but you guys solve and we are able to use sdk over all devices. Here is the LogCat from device. 03-06 15:01:43.032 18982-19014/? E/AndroidRuntime: FATAL EXCEPTION: GLThread 1499
Process: com.esri.arcgisruntime.sample.displaymap, PID: 18982
java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG
at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1192)
at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1183)
at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1033)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1400)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239) Thanks for all. doneill-esristaff
... View more
03-06-2018
04:21 AM
|
0
|
0
|
680
|
POST
|
Hi everyone, We develop an android app that uses Portal for named user licence. When I want to listen portal load event. addDoneLoading listener is not called. Here is my code. public class MainActivity extends AppCompatActivity {
private MapView mMapView;
private ProgressDialog pd;
Portal portal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String theURL = "http://********.ibb.gov.tr";
//request that the Named User logs in with their credentials
portal = new Portal(theURL, true);
portal.setCredential(Utils.getUserCredentialsPortal());
portal.addDoneLoadingListener(new Runnable() {
@Override
public void run() {
LoadStatus ls = portal.getLoadStatus();
switch (ls) {
case LOADING:
Toast.makeText(MainActivity.this, "Load Status 5 !!! " + portal.getLoadStatus().name(), Toast.LENGTH_SHORT).show();
break;
case LOADED:
LicenseInfo licenseInfo = portal.getPortalInfo().getLicenseInfo();
ArcGISRuntimeEnvironment.setLicense(licenseInfo);
break;
case NOT_LOADED:
portal.retryLoadAsync();
Toast.makeText(MainActivity.this, "Load Status 7!!! " + portal.getLoadStatus().name(), Toast.LENGTH_SHORT).show();
pd.dismiss();
break;
case FAILED_TO_LOAD:
//portal.retryLoadAsync();
Toast.makeText(MainActivity.this, "Load Status 8 !!! " + portal.getLoadStatus().name(), Toast.LENGTH_SHORT).show();
pd.dismiss();
break;
}
}
});
portal.loadAsync();
mMapView = (MapView) findViewById(R.id.mapView);
MapViewUtils.setUpBaseMap(mMapView, "https://************/arcgis/rest/services/RehberSB/MapServer", Utils.getUserCredentialsItfaiye());
}
@Override
protected void onPause() {
super.onPause();
mMapView.pause();
}
@Override
protected void onResume() {
super.onResume();
mMapView.resume();
}
} How could I afford to call addDoneListener ? Thanks for helpings.
... View more
08-08-2017
06:41 AM
|
0
|
1
|
611
|
POST
|
I got this notification too. How did you detect that esri library use libpng library ? Google play developer console only says that your app affected due to the previous version of libpng. I ask this question because I use many libraries in my project. Thanks in advance
... View more
06-16-2016
11:04 PM
|
0
|
2
|
1323
|
POST
|
Hello everyone, I am developing an app that uses some features of esri android sdk, I know there is some ways to provide security to my esri services (eg. user credentials , token etc.) So my question is another way to provide security. Esri Android SDK has HttpRequestHandler to access to some features of HTTP requests. HttpRequestHandler | ArcGIS Android 10.2.7 API In order to provide security I defined ArcGIS Server Link like below (Some places of link has been changed by me); ArcGISTiledMapServiceLayer BaseMap = new ArcGISTiledMapServiceLayer("http://gisproxy.company.gov.tr/proxy.ashx?http://gis.company.gov.tr/arcgis/rest/services/CityGuide/MapServer ); Actually I have to send Header to HttpRequest for access my features and services. I could afford the write this functionality for code side but it didn't worked.
HttpRequestHandler mHttpRequest = HttpRequestHandler.getInstance();
mHttpRequest.setHttpRequestListener(new HttpRequestListener() {
@Override
public void onRequestInterception(org.apache.http.HttpRequest httpRequest, org.apache.http.protocol.HttpContext httpContext) {
httpRequest.addHeader("HTTP_REFERER", "Android SH");
Header[] mheader = httpRequest.getAllHeaders();
for (Header item : mheader) {
Log.d("RequestHeader", "Headers-----" + item);
}
Log.d("Contex", "RequestContext----" + httpContext);
}
}); So How could I solve this issue ? How canI send header parameter to http request ? Or stuff that I trying is not supported for this usage. Dan O'Neill Will Crick
... View more
01-06-2016
01:54 AM
|
1
|
1
|
3574
|
POST
|
Hello Will, I can ask one question for this issue. I make QueryTask and QueryTask's onPostExecute result is FeatureResult. FeatureResult have getFields method and this getFields method have getDomains. I'm wondering why this process return null value. I think this process should not be difficult like this I want to access domains with method below; @Override
protected void onPostExecute(FeatureResult results) {
results.getFields().get(0).getDomain //----> This line return null value..
}
... View more
08-03-2015
11:22 PM
|
0
|
1
|
906
|
POST
|
Hi Will, Thank you for your respond. Your soultion looks great but unfortunately I'm not using your approach to get domain names. You can say why ? Let me explain. I make QueryTask from featureLayer and take results send them another activity and I am creating graphic from FeatureResult and add graphic to GraphicsLayer. My whole aim is get domain values from this GraphicsLayer. ( I've added code block my question at above) As I can see your post I'm not able to get domain names from graphics. Thanks
... View more
07-31-2015
06:51 AM
|
0
|
3
|
906
|
POST
|
Hello everyone, I am developing an app that uses QueryTask feature of Esri Android SDK. Evertyhing is perfect except one thing. QueryTask results return Attribute Values and I am displaying this values at Popup. Let me explain deeply. Results have district field. I use district_name with coded value. For example; When value 1 district name display Green, when value 2 district name display Blue. At the SDK side, I am able to show district name =1 or district name=2. I want to show real district name with CodedValueDomain. I showed like left popup my attributes but I want to show like right popup. I dont know how to access codedValueDomains. I've read API documentation, samples etc. Here is my code approach; private class AsyncQueryTask extends AsyncTask<String, Void, FeatureResult> { @Override protected void onPreExecute() { progress = new ProgressDialog(MainActivity.this); progress = ProgressDialog.show(MainActivity.this, "", "Please wait....query task is executing"); } /** * First member in string array is the query URL; second member is the * where clause. */ @Override protected FeatureResult doInBackground(String... queryArray) { if (queryArray == null || queryArray.length <= 1) return null; String url = "http://company.gov.tr/arcgis/rest/services/GIS/Parcel/MapServer/1" QueryParameters qParameters = new QueryParameters(); String whereClause = queryArray[1]; SpatialReference sr = SpatialReference.create(102100); qParameters.setGeometry(mMapView.getExtent()); qParameters.setOutSpatialReference(sr); qParameters.setReturnGeometry(true); qParameters.setWhere(whereClause); QueryTask qTask = new QueryTask(url); try { FeatureResult results = qTask.execute(qParameters); return results; } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(FeatureResult results) { String message = "No result comes back"; if (results != null) { int size = (int) results.featureCount(); for (Object element : results) { progress.incrementProgressBy(size / 100); if (element instanceof Feature) { Feature feature = (Feature) element; // turn feature into graphic Graphic graphic = new Graphic(feature.getGeometry(), feature.getSymbol(), feature.getAttributes()); // add graphic to layer graphicsLayer.addGraphic(graphic); } } // update message with results message = String.valueOf(results.featureCount()) + " results have returned from query."; } progress.dismiss(); Toast toast = Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG); toast.show(); boolQuery = false; } } Dan O'Neill Will Crick
... View more
07-07-2015
01:47 AM
|
0
|
5
|
3833
|
POST
|
Thank you dan I'll give aile real metrics about performance issue. But here week finished. I'll give this information at the monday morning. Anyway, I want to ask one more question. Simple Esri Android Sdk based android app that no extra code in it size is about 31 MB. Is there a way to reduce apk size ? Eg. Removing unused classes ?
... View more
06-26-2015
09:19 AM
|
0
|
1
|
712
|
POST
|
But my problem is not how to use secure services in sdk, My question is about how to use proxy server in sdk.
... View more
06-20-2015
05:06 AM
|
0
|
1
|
1302
|
POST
|
Hello everyone, We're developing Esri Android SDK and Esri iOS SDK based apps. Using some functionality and using some code blocks. But at the Esri Android SDK based side, app is working slowly. We use same internet connection, same ArcGIS server and same approach to develop mobile app. But android app works like disappointment. In order to show you this issue we created new project. It contains 1 basemap (ArcGISTiledMapServiceLayer) and 2 button and 1 layer, when we click the button one app is adding layer when we click button 2 app removelayer, when considering even this simple app iOS side work faster 2 or 3 times than android. I'll give simple code blocks. Android side ; public class MapMainFragment extends Fragment {
private static MapView mMapView = null;
public ArcGISDynamicMapServiceLayer mDynamicLayer;
Button mButtonAdd, mButtonRemove;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_main_map, container, false);
mMapView = (MapView) rootView.findViewById(R.id.map);
mButtonAdd = (Button) rootview.findViewById(R.id.buttonadd);
mButtonDelete = (Button) rootview.findViewById(R.id.buttonremove;
mMapView.addLayer(new ArcGISTiledMapServiceLayer(getString(R.string.citymap_url)), 0);
mDynamicLayer = new ArcGISDynamicMapServiceLayer(getString(R.string.layer_url));
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMapView.addLayer(mDynamicLayer);
});
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMapView.removeLayer(mDynamicLayer);
});
} iOS Side; MainViewController.h @property (strong, nonatomic) IBOutlet AGSMapView *mapView;
- (IBAction)btnZoomAdd:(id)sender;
- (IBAction)btnZoomRemove:(id)sender; MainViewController.m
@interface MainViewController (){
AGSTiledMapServiceLayer *baseTiledLayer;
AGSDynamicMapServiceLayer *dynamicLayer}
baseTiledLayer = [AGSTiledMapServiceLayer tiledMapServiceLayerWithURL:baseurl];
[self.mapView insertMapLayer:baseTiledLayer withName:@"City Map" atIndex:0]; activeBaseLayer =@"City Map";
dynamicLayer = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL: urldynamic];
- (IBAction)btnZoomIn:(id)sender {
[self.mapView addMapLayer:dynamicLayer withName:Name];
}
- (IBAction)btnZoomOut:(id)sender {
[self.mapView removeMapLayerWithName:Name];
} As you see in code blocks nothing diffrent from each other but Android side works like a turtle, how Can I handle this situation ? How can I run my android app like a cheetah. I need advices. Thanks for all Dan O'Neill, Tero Rönkkö Will Crick
... View more
06-20-2015
04:25 AM
|
0
|
3
|
3801
|
POST
|
Thanks for commenting, I'll create new post and I'll mention you
... View more
06-13-2015
02:19 AM
|
0
|
0
|
1020
|
POST
|
What about this issue ? Is this solved yet or still continue ? I'm facing this issue too. When I want to addlayer to map, it gives me esriserviceexception error and map tiles load slowly.
... View more
06-12-2015
01:38 AM
|
0
|
2
|
1020
|
POST
|
Hello Robert, If I understand your situation right, I've faced with this problem too. As you mentioned; I've understand that you want to display data on the callout (like pop-up). I've solved this issue by myself. At the phone side I use callout, and add information button. User see few data when callout opens, when user click the button, full screen information comes to user. At the tablet side when user click the map I displayed a custom dialog to give information users about data. If I understand you rightly, and if you want to see my solutions, I can share my codes with you. Thanks.
... View more
06-06-2015
04:38 AM
|
0
|
1
|
983
|
Title | Kudos | Posted |
---|---|---|
1 | 01-06-2016 01:54 AM | |
1 | 04-30-2015 01:42 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|