private async void MyMapView_GeoViewTapped(object sender, Esri.ArcGISRuntime.UI.Controls.GeoViewInputEventArgs e) { // Hide any existing callout. MyMapView.DismissCallout(); // Perform the identify operation. IdentifyLayerResult myIdentifyResult = await MyMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show. if (!myIdentifyResult.GeoElements.Any()) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers. WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content. string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This test should work for most arcGIS-based WMS services, but results may vary. if (!htmlContent.Contains("OBJECTID")) { // Return without showing the callout. return; } // Show a callout with the HTML content. ShowHtmlCallout(htmlContent, e.Location); }
private async void _myMapView_GeoViewTapped(object sender, GeoViewInputEventArgs e) { try { // Perform the identify operation. IdentifyLayerResult myIdentifyResult = await _myMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show. if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers. WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content. string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This would be a good place to check if the result looks like it includes feature details. // Show a preview with the HTML content. _webView.LoadHtmlString(new NSString(htmlContent), new NSUrl("")); } catch (Exception ex) { new UIAlertView("Error", ex.ToString(), (IUIAlertViewDelegate)null, "OK", null).Show(); } }
private async void _myMapView_GeoViewTapped(object sender, GeoViewInputEventArgs e) { try { // Perform the identify operation IdentifyLayerResult myIdentifyResult = await _myMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This would be a good place to check if the result looks like it includes feature detail. // Display the string content as an HTML document. _htmlView.LoadDataWithBaseURL(string.Empty, htmlContent, "text/html", "UTF-8", null); } catch (Exception ex) { new AlertDialog.Builder(this).SetMessage(ex.ToString()).SetTitle("Error").Show(); } }
private async void MyMapView_GeoViewTapped(object sender, Esri.ArcGISRuntime.Xamarin.Forms.GeoViewInputEventArgs e) { try { // Perform the identify operation IdentifyLayerResult myIdentifyResult = await MyMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This test should work for most arcGIS-based WMS services, but results may vary. if (!htmlContent.Contains("OBJECTID")) { // Return without showing the result return; } // Show a page with the HTML content await Navigation.PushAsync(new WmsIdentifyResultDisplayPage(htmlContent)); } catch (Exception ex) { await((Page)Parent).DisplayAlert("Error", ex.ToString(), "OK"); } }
private async void MyMapView_GeoViewTapped(object sender, Esri.ArcGISRuntime.UI.Controls.GeoViewInputEventArgs e) { // Clear any existing result. ResultWebView.Visibility = Visibility.Collapsed; try { // Perform the identify operation. IdentifyLayerResult myIdentifyResult = await MyMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show. if (!myIdentifyResult.GeoElements.Any()) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers. WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content. string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This test should work for most arcGIS-based WMS services, but results may vary. if (!htmlContent.Contains("OBJECTID")) { // Return without showing the callout. return; } // Show the result. ResultWebView.NavigateToString(htmlContent); ResultWebView.Visibility = Visibility.Visible; } catch (Exception ex) { await new MessageDialog(ex.ToString(), "Error").ShowAsync(); } }
private async void MyMapView_GeoViewTapped(object sender, Esri.ArcGISRuntime.Xamarin.Forms.GeoViewInputEventArgs e) { // Perform the identify operation IdentifyLayerResult myIdentifyResult = await MyMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found; // here might be a good place to check for that and filter out spurious results // Show a page with the HTML content await Navigation.PushAsync(new WmsIdentifyResultDisplayPage(htmlContent)); }
private async void _myMapView_GeoViewTapped(object sender, GeoViewInputEventArgs e) { // Perform the identify operation IdentifyLayerResult myIdentifyResult = await _myMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found. // This would be a good place to check if the result looks like it includes feature detail. // Display the string content as an HTML document. ShowResult(htmlContent); }
private async void _myMapView_GeoViewTapped(object sender, GeoViewInputEventArgs e) { // Perform the identify operation IdentifyLayerResult myIdentifyResult = await _myMapView.IdentifyLayerAsync(_wmsLayer, e.Position, 20, false); // Return if there's nothing to show if (myIdentifyResult.GeoElements.Count < 1) { return; } // Retrieve the identified feature, which is always a WmsFeature for WMS layers WmsFeature identifiedFeature = (WmsFeature)myIdentifyResult.GeoElements[0]; // Retrieve the WmsFeature's HTML content string htmlContent = identifiedFeature.Attributes["HTML"].ToString(); // Note that the service returns a boilerplate HTML result if there is no feature found; // here might be a good place to check for that and filter out spurious results // Show a callout with the HTML content ShowHtmlCallout(htmlContent, e.Location); }