I have a VS 2008 C# program that I would like to port to a mobile app. It used Microsoft.sqlserver.types, geography, polygon, etc. It does not need maps, connection to the internet, etc. It calculated acreage, drew the polygon, never accessed or wrote to a DB file. I am learning and playing with Xamarin (now that it is free).
I do realize that not all the C# code is applicable to Android and IOS, and some would have to be other code. Can I do this same kind of coding\calculating, without accessing the internet, without using maps, without accessing a DB (although that might be useful later on), etc...using Nutiteq (the free version), across Windows, Android, and IOS?
Nutiteq SDK is specifically for display of maps. It has own geography objects and methods, not related to Microsoft.sqlserver. It is meant to replace e.g. Google/Apple maps, to have offline map view and routing features, and also some GIS: vector data editing, reading various GIS data formats like ShapeFile, GeoTIFF etc, and it works with native development on iOS and Android, and also Xamarin.
If you do not have any Map View, then probably Nutiteq SDK is not the best tool for your app.
Related
I want to connect my C# windows based app to firebase realtime database. Is there any convenient library to do the same? or is there any better method to do so?
From this link here you can say that FirebaseDatabase.net is better than another older library like FireSharp and FirebaseSharp :
They both have their imperfections, specifically related to realtime streaming.
For example, when we subscribe to a location, and a change happens to some nested node, FireSharp won’t correctly pair it with the top level entity and will only return the path and data as a string. We want the deserialization to be automatic.
FirebaseSharp‘s streaming implementation is even more unfortunate — at first, it fetches everything from a given location (even when we specify filtering options) and does the filtering locally. This is obviously not usable when there are thousands of items.
Also, neither of them targets Universal Windows Platform.
Firebase for Windows is not release ready yet. We have a C++ library and a C# library for firebase and both of them support Windows. But a quick look at the support pages will show you that Firebase is only supported for Android, iOS and Web. The desktop version of Firebase API's is a beta feature and is not recommended for shipping. You can integrate it but you are not supposed to ship it. I would recommend going through Firebase alternatives instead of shipping your product with Firebase and waiting for the desktop version to be out of beta for you to ship it.
Following the instruction here.
It might help you.
He's using Google.Cloud.Storage and Google.Cloud.Firestore to make connect and retrieve data from collection.
We are investigating the potential use of Bing Maps WPF control in OFFLINE mode (which will be called MercatorMode in the control). OFFLINE mode implies that we download on a desktop machine the tiles for different zoom levels and then the WPF control accesses these pre-saved tiles instead of connecting to the Internet. Technically this scheme works perfectly.
What is unclear right now is how to obtain (download) the tiles without violating any Bing Maps license rules. So it raises two questions:
Whether there exists a way to officially download Bing Maps tiles
Whether it is officially allowed to use the control in the OFFLINE
mode (assuming that we’ve got some tiles from some source of tiles)
The legal documentation for Bing Maps is rather confusing than clarifying. So we’d like to ask about the particular experience of other developers.
Our ultimate goal is to have:
a good WPF control for maps (which is a natural WPF control, not just a
wrapper over a WinForms control) supporting OFFLINE mode
a legal source of tiles to be used in the OFFLINE mode (costs are
not an issue – we are ready to pay for tiles)
Maybe the community would suggest another pair WPF Control + data source for tiles. We do not need any deep level of zooming since we plan to use the control and tiles only for drawing the borders of countries (excluding extremely small countries).
Right now we see that Bing Maps as a data source also supports Bing Maps WPF control, but the licensing terms are a real mess.
PS
We are developing an “in-house” desktop application which will be used internally in our organization while the Bing Maps license never explicitly references desktop applications while mentioning web-applications and Windows Store. Does anybody know whether Microsoft intentionally doesn’t mention the desktop applications?
None of the Bing Maps controls can be used offline. This is against the terms of use. MercatorMode is not an offline mode, this is just a mode which all the standard map views inherit from and which you can use to have a blank background to a custom tile layer. The Map control will always need to have access to the internet otherwise it will not be able to authenticate the map. When it can't authenticate the map an error is thrown. You can handle this error such that it disables the map instead of crashing the app by using the following code sample: http://rbrundritt.wordpress.com/2012/04/05/bing-maps-wpf-internet-connection-issue/
For an offline map control solution take a look at GMap.NET: http://greatmaps.codeplex.com/
Telerik has a nice Map control which supports:
Rich geographical context for large volumes of data
Heat maps
Multiple tile layers
Multiple Map Providers
Support for Bing Maps, OpenStreetMaps, custom map providers, as well
as visualization of geospatial data.
You can try https://greatmaps.codeplex.com/ which works fine in WPF/Offline mode. First you may have to use their application to download the desired maps at all zoom levels. The maplets are stored in SQLLite database which you may consume in your WPF application. The entire source code along with the map control in WPF is also available there.
I am a WPF developer and few days ago I came to know about Flex. Now,I got Following list of questions.
Both of them to be used for creating rich GUI application. So, are
they competitors to each other.**
If both are to be used for same purpose, then which one should be preferred.**
Moreover, I was also wondering that WPF is based on DirectX for rendering as
it does vector-based rendering, but at the same time I am also keen to know
that How Flex renders, Flex is based on what??**
Does Flex can also use GPU based rendering... Is there anyway to use Shader in Flex.**
I am very much confused about Flex, because I am very new to Flex........So, Please clear my doubts, as I might be having totally incorrect perception about Flex
1 Both of them to be used for creating rich GUI application. So, are
they competitors to each other.
Only to a certain extent. As far as I know WPF can only be used to create windows-based applications. Flex' initial primary target was the web and most Flex applications were so-called "Rich Internet Applications".
Later Adobe created AIR, which is a virtual machine that lets you run the same applications on the OS itself, often by reusing 99% of the code that was written for the web apps. Some API's were added to access native functionalities of the OS (client-side database, file I/O, running/accessing native processes, etc.). AIR applications can be deployed on Windows, Mac and Linux alike, though development of the AIR vm for Linux has been stopped.
The last step in this story is that AIR applications can now also be packaged as apps that can be deployed on mobile OS's. Again because it t
runs in a VM, this offers a "write-once, deploy-everywhere" solution. Both Android and iOS are supported (not sure about BlackBerry but who cares). On the Flex side of things, some mobile-specific UI components were added to the framework.
2 If both are to be used for same purpose, then which one should be preferred.
The choice is entirely up to you and depends on factors like knowledge about the framework, specific requirements that you might have, etc., etc.
3 Moreover, I was also wondering that WPF is based on DirectX for rendering as it does vector-based rendering, but at the same time I am also keen to know that How Flex renders, Flex is based on what??
Flex is a framework that compiles to ActionScript which in turn compiles to abc bytecode. That bytecode will be interpreted and run by the Flash VM.
The roots of Flash lie in vector-based rendering (it was the solution to render vector graphics on the web for the two previous decades). All stock graphics for the Flex UI components are thus vector-based.
4 Does Flex can also use GPU based rendering... Is there anyway to use Shader in Flex.
GPU acceleration has been added to the Flash/ActionScript API somewhere in the last 5 years, but because the Flex framework was created long before that, and porting it to the new GPU-accelerated system would be too complicated, Flex does not benefit from that evolution.
But you can use a Flex UI side by side with GPU-accelerated components. You could for instance create a normal Flex application with just one component that renders a 3D model that kind of lives outside the Flex display list.
Usually only games written for the Flash VM do leverage the GPU acceleration. Most of them use the Starling framework. For mobile UI's you also have the option of the FeathersUI framework, which provides a GPU-accelerated mobile component set on top of Starling.
Note that #Vinodharajan's answer is not entirely correct in that the Flex framework is no longer property of Adobe. Adobe donated it to the Apache foundation about two years ago and it has been evolving there ever since.
Flex is a Adobe base front end product. This internally uses Flash to render its content on the browser or Adobe Air for standalone application. This can use hardware rendering. You can just think this as a alternate from Adobe for WPF.
I have been assigned to know to how to make a GPS Navigation Software for Win CE 6.0 operating system. But after searching a lot, I couldn't find a good way to start.
I have downloaded some free software by which i can view the provided ShapeFile files but I want to make a software by which I can view those files in my customized mode.
My preferred technology is .NET 3.5 / 4 and my OS supports silverlight.
You can visit this link what exactly I want to do.
Thanks in advance.
I have to work on a predefined data set (shape files) provided by my client and i have to put my app in GlobalSat [GA-5718] device.
Your suggestions are very fine but it won't work for me. Thats why I am in a confusing position.
At first you'll need to get access to the GPS data and read it. Most GPS modules act as a serial device on some COM port and provide their information in the NMEA Standard.
To get this easily read you should take a look at the OpenNETCF Serial Library, cause it provides an easy access to the informations and is able to read the NMEA strings.
But most GPS modems needed to be initialized by sending a correct NMEA input string. For these you should take a look into this documentation, this site or in the comment in the source above function public bool SendGpsMessage(string GPSSentence).
With these informations you should have a good starting point to correct read in the GPS data. Visualization of these informations to the user (like showing a Map with the current position) is another task. But maps.google.com API would be a possible candidate if you software runs on a machine with internet connection and you don't mind the costs for this connection.
The fact that you are asking this question strongly suggests you do not have the resources or ability to write it from scratch (it is a substantial project). Therefore you will have to use existing toolkits. You mention Silverlight, so I suspect you are going to be working in an online environment. Therefore I would recommend the Bing Maps Silverlight Control. IMHO, this outperforms the Google Maps control at the moment - but it is a moving target. This is a place where active competition results in two products (Google Maps & Bing Maps) constantly trying to out do each other.
If this is for a commercial application, then check the EULAs for these services - although many enthusiasts assume they are free, this is not necessarily the case. Most commercial applications cost significant sums ($1000s per month). In such a situation, the choice of service will probably come down to cost rather than technology.
I am hoping to receive some general guidance on accomplishing a seemingly simple goal. I have a DSLR camera (Canon EOS 50D) and need to write an application that will tell the camera to take a picture. I also need to transfer the picture to the computer and possibly delete it from the camera's storage. A bonus would be to get a live preview from the camera in my application. My environment will be Windows (either XP Pro or Vista Enterprise) and .Net 3.5 (C#).
I have done some research and found a couple of options. One I know will work, but limits me to using only Canon cameras in the future. I have found and downloaded an SDK from Canon that provides a lot of this functionality. I've looked over the SDK and while it's extensive and written in C it does have C# wrappers that will speed up development a bit.
Another option I've found is called Windows Portable Devices. Apparently, it is an API that will talk to devices that implement PTP and MTP standards. It is COM based and as far as I can tell it has no .Net wrappers. This is not however a show stopper. I could P/Invoke the functionality I need or write a Managed C++ DLL to use in my application to talk to the camera.
I am looking for anyone with experience with WPD to give me pointers. I've perused the documentation and seen references to transferring images and deleting images. I have not, however, seen mention of commands to take a picture, get a preview image, or say focus/auto-focus.
The WPD api provides the command WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE
I am not sure whether your camera supports it but it should be simple enough to find out. If you can get the "wpdinfo" tool from the driver development kit and start it with your camera connected then send it a WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_COMMANDS command and see if it supports the still image capture command. IF so then you could give that a try.
The comment from TallGanglyGuy is incorrect. ptp does allow you to trigger new images and change exposure, etc. Some cameras have firmware that only exposes some of the ptp commands.
PTP supports common device controls, such as taking a picture, so that
the user could take advantage of the PC/camera combination in new and
different ways again, without requiring additional software.
quoted from http://msdn.microsoft.com/en-us/windows/hardware/gg463507.aspx#EXC
try my Eos Framework: https://github.com/esskar/Canon.Eos.Framework
IMHO it's a better alternative then the .cs file that comes with the SDK.
PTP and MTP are both protocols for transferring files from a digital still camera (DSC). The protocols provide no functionality for triggering new images, or setting exposure control. You will be stuck using the camera specific SDK. If you want multiple vendor support Nikon has an SDK that provides similar support as the Canon SDK for their cameras.
More info on PTP and MTP can be found here:
http://en.wikipedia.org/wiki/Picture_Transfer_Protocol
and
http://en.wikipedia.org/wiki/Media_Transfer_Protocol
EDIT
I forgot to mention that WIA may be interesting to you, assuming your camera's driver provides a WIA interface.
This is really generic, but it may help.
I had to write an application that used two different bar code scanners from two different vendors with different SDK's. I created an interface that defined the methods and events that I wanted to code for, and then wrote adapter classes that implemented my interface.
This worked well in my case, and switching from one to the other was pretty seamless. If you took the same approach, you wouldn't be totally dependent upon one SDK.