How to save esri map as an image file - silverlight

I am using Silverlight 3 and I am trying to take a screenshot of esri map.
I was able to take a screenshot and save as a file for silverlight controls, but when I try to access Esri map image, I get "Pixel access not allowed" error. I heard this is because of different domain (I am trying to get map image on the client side, and map image is not accessible at server side in my silverlight application).
So I am trying to find a function from esri so that I can save the map image as a file.
does anybody know how to do this? or any other way around?

I am using a script from the Code Gallery for both printing and exporting map images.
The script requires a little bit of tweaking to get it to work (plus you need to dig a little bit into WCF and self-hosted services), but it has been working great for several months now. You can see it in action at our web site.

Related

Where to store image if the image is used in two different websites

I want to upload the image in my website. The same image will be shown in another website. So this is the scenario where image is uploaded in one website and displayed in both website. These two websites are hosted in two different servers as well as they both have their own database.
I am using Angular JS, Entity Framework, Web API and SQL Server 2014 as backend for both of the website. Currently I am using ngFileUpload to upload the images. Please answer me on below questions:-
Should I upload the image in database(as nvarchar-max) or filesystem(FTP or local web server file system)? I read many articles and get to know that Database retrieval of image has affect on performance but it is more secured. However File System is easy in performance but complex on maintenance like back ups. So I am just not able to decide which to choose among these two as both have pros and cons. Which option will be more suitable to my requirement where same image will be displayed in both website. Please note that there can big images like upto 5 MB uploaded in the application but the number of images will not be huge as compare to any social networking or online shopping site.
How to create different size of images(thumbnail, medium, large etc) automatically upon uploading of image in website? Is there any tool or directive already available in Angular JS to achieve this?
I know my question is broad but I need suggestion to start with my requirements.
Please help.
I use the file system to host my images. If the image is displayed on someone's computer screen, they can use an image capturing software to copy it anyway. Also, while storing them to a database may be more secure, I don't need the extra overhead in my code where a simple url to retrieve the image will suffice.
As for resizing an image using Angular, check out these links:
https://www.scientiamobile.com/page/angular-image-resize
https://github.com/FBerthelot/angular-images-resizer

Does the Google Street View API support retrieving a full 360 equi-rectangualr image?

The docs are not clear on this as they mention fov and viewport suggesting a portion of the entire spherical image.
Does the Google Street View API support retrieving the entire 360 degree equi-rectangular (lat/lon) image?
No, but you could download separate panorama tiles and pack them together of use a third party tool (ex: https://istreetview.com/) and get the entire 360 degree image.
Another option would be to code the above functionality by yourself by using Google StreetView Image API (https://developers.google.com/maps/documentation/streetview/intro). To be honest, I did not try this myself, but through the API you should be able to retrieve all parts of the image and then stitch it back into equirectangular panorama.
This might give you more info:
How to get the original panorama image by panoid in google street view?
EDIT: While searching a way to overcome the fact that Google StreetView app doesn;t work as marketed, I found another third party service able to retrieve photos https://gothru.co/
It is possible by making use of the FOV and heading options within the API.
Take particular note of the heading param.
https://maps.googleapis.com/maps/api/streetview?size=640x640&location=51.52551,-0.08853&fov=120&heading=0&key=YOUR_KEY
https://maps.googleapis.com/maps/api/streetview?size=640x640&location=51.52551,-0.08853&fov=120&heading=120&source=outdoor&key=YOUR_KEY
https://maps.googleapis.com/maps/api/streetview?size=640x640&location=51.52551,-0.08853&fov=120&heading=240&key=YOUR_KEY
By making these three separate API calls you will receive the 360 image sliced into three parts.
You can then use something like node blend to combine them and voila you have a 360 panoramic image!

Aspose PDF viewer

I am using the Aspose PDF tools and have successfully got it to print the pdf which is great, but ideally I want to be able to add a wpf control to display this as well.
I would have assumed that the PdfViewer class would have something, but I can't tell.
So far I have needed to use a different control MoonPdfPanel which is annoying as I would have preferred 1 tool to do both jobs.
Does anyone know of a control I can use to hook into the aspose?
Thanks
We have developed an HTML5 PDF Editor application using Aspose.Pdf for .NET API which you can use in your application as a PDF Viewer as well. You can get the details and complete source code here. You can use the source code to edit the viewer as per your requirement.
P.S. I am working as social media developer at Aspose.
Well, if you are interesting in viewing the PDF file, you may convert the file to HTML and display it using an IFrame in your application. I have developed a sample application which performs different operations including viewing a PDF file in IFrame. Download it and try it at your end. Another option is that you can convert the PDF file to images and display in Imageviewer in your application (Code is available in the above application).
P.S. I am working as social media developer at Aspose.

Arcgis: How can I load an image as the map?

I am using Arcgis WPF, I am wondering if I could load an image as the map in my application? If it is possible, could you please tell me how to achieve it?
Thanks.
You can use ImageServer for the imagery files, and if the image is an .jpeg or .png and is non georeferenced, then you can use ArcMap to make it a map service (tiled map service or dynamic map service) and then use that map service in your code. You can go to ArcGIS online forums for WPF for more information
Is it satellite imagery or just an image? What API are you using?
If it is just an image, you can use a Graphics Layer and add the image as a graphic. With this approach, you can give it whatever lat/lon makes sense for your spatial reference.
If you have satellite imagery, you want to add it as a Raster layer (ArcGIS for Desktop/Engine) or a Tiled Map Service (WPF/Silverlight APIs). If you are using the WPF API's (and not ArcGIS Engine) then this requires access to ArcGIS Server to publish a map service.
I recommend reading through the API documentation as it is well documented.

Loading Images for Silverlight app from server without ssl

I have an Silverlight application that uses ssl to communicate with the site-of-origin. The application loads a number of images from a separate server (running apache under port 81 without ssl). The images are regular png's. The images from the Apache machine are not loaded properly, i.e. the image control remains blank. When I post the same image on my app server (i.e. site-of-origin), and modify the link accordingly, the images are displayed properly. This link on MSDN says that images are media are excluded from access-restriction policies.
Would appreciate any suggestions.
I hope you are deploying your Silverlight application to a web server and not running it using the Visual Studio development server. I had a similar problem with images when I was using the built in development web server. You can find about my experience here.
It might help if you subscribe to ImageFailed event and post the stacktrace.
You are running into cross-scheme access restrictions in silverlight, see table at the bottom of http://msdn.microsoft.com/en-us/library/cc189008(v=vs.95).aspx
One possible solution is to load image using WebClient and call SetSource on image element. That is what we do in our app. In fact we wraped it into custom image control that hides all annoying details.

Resources