Not-bing maps on Windows Phone 7? - silverlight

Is there by any possibility a library or sth that allows to work with maps on Windows Phone 7 (connect to gps, connect a gps data with a point on the map etc.) and is NOT the control that connects with Bing?
Thanks in advance.

You can use ArcGIS, which does not use the Bing Maps control, though if you just want different maps (such as OpenStreetMap) you can specify a custom TileSource.

You can of course use the Bing maps control with other sources http://dotnetbyexample.blogspot.com/2010/10/showing-open-source-maps-on-windows.html - although this may one day hit licensing issues.
If you want to write your own map control, there are a few open source projects around - things like http://greatmaps.codeplex.com/, http://wpfsharpmapcontrols.codeplex.com/, http://bingmapscontrol.codeplex.com/ - but I don't know any of those with WP7 or touch support. Given the number of questions I've seen on SO asking for advanced features (like map from isloated storage), then hopefully one will come along soon!

Resco MobileForms Toolkit contains Location library that offers location-related services and lets you select one of 2 providers - Google or Bing. This article provides the details.
Any comments are welcome.

Related

Toolkit options to write a crossplatform mobile app in 2012?

I'm currently investigating the alternatives for crossplatform development for Android and iPhone (Windows 8 could be a nice addition). The app is basically a "map with an asociated app", and certainly not a game.
Searching here I see many outdated advice and tools from 2010/2011, but since then Apple has changed their policies and surely new things have appeared.
My current list and light research (might have facts wrong) is:
Monotouch/Monodroid: .NET (Mono) framework. Create "native" apps on both platforms. Requires rebuilding UI code (or similar things).
Appcelerator: Javascript framework to compile native apps.
Corona: Similar to Appcelerator.
Phonegap: Similar idea, but looks like it uses a wrapper to appify HTML5 content
SenchaTouch: Another HTML5 based platform.
Wink: Yet another HTML5 toolkit.
XVLM: Android to ObjC compiler, probably creating ugly iOS apps.
Unity3D: For games only.
Moai: For games only.
So, there are three main ideas, with some frameworks implementing each, it seems to me:
Have an abstraction layer over native iOS/Android code and build for each platform using the provided layer. (Monotouch, Unity3D)
Use HTML5 (coding in Javascript) and some kind of wrapper to "appify" the web content. (PhoneGap,Sencha,Wink)
Code using a framework that will output as a compilation pass (or similar) a native app for each supported platform (Moai, XVLM,Appcelerator,Corona)
The questions:
Is there a fourth idea I haven't yet found?
Is there any blatant mistake in my research for any of the specified frameworks?
Is there any known problem for map integration with any of these ideas or specific frameworks?
Only a partial answer:
Ad 2. Appcelerator / Titanium is more than just HTML5. I read this pretty extensive comparison between PhoneGap and Titanium the other day on Hackers News. I found it very informative. The link points to the HN comments, the link to the actual article is at the top.
My main experience is with Mono for Android and MonoTouch, so I can't personally speak much to the other options. I personally find it to be the best option there is, as it allows you to share a large amount of your code across the platforms (even extending to non-mobile platforms if you stick with .NET), while still allowing for a 100% native UI, which is extremely important. If you're looking for resources on getting started, I have this video which discusses approaches and libraries for sharing a lot of code across platforms, and also this book which covers the same thing, but also expands to talk about how to do things like store data, use maps, access the network, etc.
I also want to mention MonoGame, which is absent from your list. MonoGame is an open source XNA implementation that sits on top of Mono to allow you to target iOS/Android/Max OS X.
From what I have experienced, if you want to have a native app go Mono, if you don't need native go PhoneGap. Native is best of the UI is very important, ie games or fairly graphical apps. But from business type app, CRUD, Phone gap works well.

Using Google maps API within Silveright

I am developing a silverlight aplication which uses a bing maps interface. The client has now changed their requirements and would like to use existing google maps licences rather than pay for both google and bing (it's a private application and hence does not come under the free licences). Does anyone know if it's possible to do?
Cheers
Cap
Is it possible to do? Technically, very easy. But doing so in a legal way, pretty hard.
When you say you were "developing a Silverlight application using a Bing Maps interface", do you mean that you were using the Bing Maps Silverlight control provided by Microsoft? (http://www.microsoft.com/maps/isdk/silverlight/)
If so, unfortunately, you can't simply switch out the Bing tiles and use Google Map tiles instead - to do so would be a breach of the Bing Terms of Service (Section 2i. "You may not... integrate the Bing Maps Platform or any of its content with any other mapping platform; " - http://www.microsoft.com/maps/product/terms.html).
If you've coded your own Silverlight map control, then the terms above don't apply and it shouldn't be too hard to point at a Google Maps tile source rather than the Bing Maps tiles - they use exactly the same Spherical Mercator projection and tiling system, with only a few differences in the way that tiles are referenced that can easily be converted between the two systems. The problem I see here is that the Google terms of use state that you "may not... access or use the Products or any Content through any technology or means other than those provided in the Products" (http://www.google.com/help/terms_maps.html), and Google Maps don't provide a supported means of direct tile access.
So, to comply with Google's ToS, you're going to have to access the Google Javascript Map control from your Silverlight application (either via the SL webbrowser control, or by overlaying an iframe on top of the SL application). Note that, by doing so, you've basically lost any advantage of having coded your application in Silverlight - you may as well have written the whole thing in HTML/Javascript....

How does Silverlight programming on the Window Phone 7 differ from browser plugin?

I was talking to another developer recently and we started to discuss Window Phone 7 development. Their thoughts, from what they had heard (i.e no hands on knowledge) was it was really just Silverlight development. My reaction was that I see a lot of posts these days regarding Silverlight that call out being for "Windows Phone 7" so there must be some distinctions between the two.
So what I'm wondering is what are the differences between developing for WP7 v. the browser plugin.
The things I can think of, but seem obvious are:
WP7 Silverlight version isn't the same SL 4.0 but more like SL 3.5+
the hardware is different (memory\cpu)
I assume there are some different controls
you need to take into account the form factor
Not discounting the above list, which are important, but what else is different when developing a Silverlight application for WP7 v. browser plugin?
Thanks
There are a lot of technical differences and sure there are plenty here who give you bullet list of these. However there are really just a few real differences that make a big difference to how you develop apps for WP7.
Its a touch interface people
Quite a few apps I've played with from the market place seem to have developers struggling to grasp the concept of a touch based interface. Its clear that many are still using the left mouse down event when they ought to be looking for a "Tap" gesture. This can be frustrating for users trying to "flick" and find they've "clicked" instead.
So make sure you are using a gesture based framework (toolkit has one) so you don't annoy the users.
Your app will tombstone
WP7 guards its resources jealously. At a moments notice your app may be deactivate as the search screen or start screen is invoked. Volatile state of your app will be lost. WP7 API includes a number of ways of keeping key small chunks of data when your app gets "tombstoned" so that when the user returns to it, it should be able to restore near enough the same state it had before. However this isn't done auto-magically you have to code for it.
Again some of the apps in the market place don't handle this well and when you have an Omnia 7 which has a seriously sensitive search button that can be really frustrating.
Network access and other services are intermittent
If you are developing a connected app you need to cope gracefully with changing network access or loss of access all together.
Read the manual
Whilst there are plenty of resources get devs up and running real quick the devil is always in the detail. I recommend you at least start with reading Fundamental Concepts for Windows Phone which will cover some of these issues.
TBH there are a lot. Some of them:
Touch input vs Mouse clicks
Sounds and music
Silverlight 4.0 "/content/song.wma"
Silverlight for Windows Phone 7 "content/song.wav" (mind the slash)
Navigation philosophy
WP7 SL has two threads by default. One (compositor thread) runs all animation, second (UI Thread) runs the rest.
Controls have very diffrent default behavior and look
and many other OS realated
Better than any explanation, you should refer to the official website.
Silverlight for WP has support for (according to the same doc):
Hardware acceleration for video and graphics
Accelerometer for motion sensing
Multi-touch
Camera and microphone
Location awareness
Push notifications
Native phone functionality
It doesn't have regular COM bindings and it has somewhat limited access to reflection, among all restrictions.
For a complete list of features supported in Silverlight for Windows Phone, read this document.

What silverlight dev must learn to use arcGIS silverlight?

I am already familiar with Silverlight programming but not have any experience with GIS.
my role as silverlight developer is only to display existing GIS data.
If you guys have any experience with arcGIS silverlight control & api, what else do you think I must learn to be able to use it.
any learning reference could be helpful. thanks.
you don't need alot, you can dl the SDK from ESRI and then check out thier help site they have crap-loads of examples, both downloadable source and live samples (with the source code). If you have a license, you can use bing maps in the ESRI silverlight control--there are assemblies in the SDK for that.
as an aside, the SDK also includes the WPF assemblies as well.
It helps to have a basic understaind of the ESRI Map and Graphics object model for any of their API's (they all have similarities). The Silverlight API is much simpler than the Arcobjects API, but shares many of the same patterns.
If you are performing specific operations (such as distance calculations, map annotating, etc) there may be very specific concepts that will help. Can you post a question with more details about your goal?
I have made some different projects that used GIS data. I haven't tried arcGIS but used Bing Maps (http://www.bing.com/community/blogs/maps/archive/2009/03/18/introducing-the-virtual-earth-silverlight-map-control.aspx) and a Silverlight component from ThinkGeo (http://gis.thinkgeo.com/Microsite1/MapSuiteSilverlight2/tabid/709/Default.aspx?adcampaign=Map+Suite+Silverlight+Edition&leadsource=Google&adgroup=Silverlight+General&adtype=search&keyword=silverlight+map&gclid=CIu976aW0Z0CFZ1h4wodwGsDsA).
I think that Bing Maps is really easy to work with and there is lots of help available online. Maybe that can help you with some starting resources to argGIS?!
Chris is right. The help site has enough samples. I don't have Silverlight skills, so I really struggled with it and I was pretty bad at it too. I think the silverlight learning curve is much steeper.
I tried to wire up GIS tools/buttons to a ribbon control. It sort of worked, a silverlight dev would do a better job:
View esri-silverlight-toc-png
If you just need to control visibility, between services. It's real easy. Or if you have one service, with layers inside that you need to control...that's easy too.
But if you need both, you will have to roll your own layer control. I wired it up to a treeview, but it doesn't look sexy. ESRI may have a better TableofContents control out now, they didn't when I was messing with it:
View esri-silverlight-png

Possibilities for full blown silverlight applications

Since the launch of Silverlight 2 I was expecting a lot of full blown Silverlight applications popping up but still there seem to be little evidence of this. Does anybody know of such applications out there in the wild. And also what would be the obvious applications you would develop in Silverlight. I would say mail clients are bad examples as they just as well could be written as a web/ajax app. As Silverlight is far more powerful than web+ajax possible candidates should be impossible/akward implementing as a web/ajax app.
The ones that comes to my mind is
Photo and imaging editing apps
Reporting applications
Office applications, Word/Excel...
Edit:
Added from posts
Games
The point isn't that the app need to fill the whole screen just that it isn't just a small part of a webpage, or you could call it a full blown application running inside the webbrowser, only using the webbrowser as a host.
I think the Medical app that Microsoft itself developed shows pretty well what could be achieved with silverlight http://www.mscui.net/PatientJourneyDemonstrator/
As for image editing then as I understand its a bit difficult as Silverlight lacks a Bitmap API to be able to do per pixel image editing...
Edit:
I noticed you added Word/Excel to your question and there comes the problem that Silverlight doesn't have a rich text editor built in and there hasn't been real good examples of custom implementations. There is one http://www.codeplex.com/richtextedit but I haven't seen any applications that actually use it.
I'm working on one in the medical domain.
This started as an update of a Mac classic application but due to the amount of work involved, broadened to considering other toolkits. I convinced them to go for an initial WPF desktop port to be followed by a Silverlight version.
I don't know one so far, but I could imagine that it could be used in a kind like the fullscreen video playback on youtube.
How many fullscreen desktop apps are there? Most application don't need the entire screen. If you don't want to be distracted by menus and taskbars and so you go fullscreen. Another type of applications that can use fullscreen are games.
You are limited in fullscreen to certain key presses such as arrow keys, tab, enter, and space so this rules out some of those types of apps. They have done this for security reasons so an app can't hijack the screen and record the keypresses, but I wish they could come up with a scheme to sufficiently warn the user then allow it if they consent.
An application Microsoft seem to like to show case is the AOL mail client written entirely in silverlight.
Personally I follow the rule is if you would not write it in flash you would not write it in silverlight preferring AJAX in most cases. In the past most large flash application have failed such as the flash word processor (cant remember the name) while AJAX enabled applications such as google documents have taken off.
Finally I believe until moonlight (linux and mac support) has been released and more general users have silverlight downloaded developers will be reluctant to use it widely even for smaller apps and gadgets.

Resources