Is it possible to have Google Earth integrated into a Silverlight app? I've tried searching on Google but the best results I could find were forum posts from 2008 which were uncertain at best.
I don't believe there is any straightforward way to utilize Google Earth from a Silverlight application. And even if you could get it to work, you would have practically no control over the Google Earth portion of the program since, to my knowledge, it is not designed to be hosted in other applications.
However, if what you want is a 2D/3D GIS (Geographic Information System) inside your Silverlight application, an alternative to Google Earth is the Bing Maps Silverlight Control. This is already Silverlight compatible, has a full 2D/3D API and provides some of the same features as Google Earth.
Here are two links about the Bing Maps Silverlight Control:
Bing Maps Silverlight Control 1.0 Released
Changes to Bird’s eye and 3D Maps
As I recall, you have to apply for a free license to use this and there are some restrictions. Please read the license carefully.
Please refer to the following links:
Using Google Maps with ArcGIS Silverlight
Display Google Maps Imagery using Bing Maps Silverlight Control
However, there do exists some legal issues as Google has prohibit the use of Google Map outside of their supplied API. As pointed in the first link:
Now for the legal answer. In short, no. You cannot access Google Maps imagery outside of an interface (read: APIs) provided by Google.
Related
I can't understand why my bing map doesn't show buildings.
The ShowBuildings is True.
You can compare 2 screenshots and the difference is huge.First - Bing Maps for Windows Store appp (My app)
Second - Native Bing Maps inside Windows 8 Pro
My xaml is pretty simple.
<MapsCore:Map x:Name="PART_Map"
Credentials="STRING_KEY"
ShowBuildings="True"
ShowBreadcrumb="True"
ShowNavigationBar="True"
/>
What is wrong?
According to this website, some features of the Bing Maps API (like BirdsEye Imagery) are not available for public testing yet, and are only available through the Extended Modes SDK. This may be where your problem is coming from.
I want to use the Bing map WPF control and I'm wondering if it is possible to set our own "image source".
Basically I'd like to use the control to provide deep zoom functionality for various images that would be loaded by my application.
I know that it's possible with Google maps (as shown here: http://blog.mikecouturier.com/2011/07/create-zoomable-images-using-google.html#maps_code_tilesgen)
but I was wondering we can do something similar with Bing maps?
P.S.: I would prefer using Bing because Microsoft provides a native WPF control, something that Google doesn't.
In order to add a custom map (or image) tile provider you would have to implement a TileSource and override its GetUri method to provide the URI of an image tile.
See Adding Tile Overlays to the Map for the details. The code sample there is not that great, since some things they do in code could better be done in XAML, but it is a starting point.
Note however that even if you don't use Bing Maps content, using the WPF control forces you to use a Bing Maps API Key. The control authenticates your key at the Bing Maps service provider, which will require an internet connection. Hence your image display application won't run in an offline environment, or to be more precise, it will run but display an ugly error message in the center of the control area.
You certainly can and it's incredibly easy to do in Bing Maps. Microsoft has developed a tool called MapCruncher that cuts a supplied image into tiles with the structure expected by Bing Maps. This is really important because, although Bing Maps and Google share the same tile structure, Bing Maps uses something called a quadkey to define each tile (meaning, the z-x-y of the tile).
Note: it's also possible to load tiles made for Google Maps in Bing Maps. You just need to tweak the tile source.
Anyway, better shown than said.
Here's a really detailed tutorial by the Microsoft Research team on using MapCruncher:
http://research.microsoft.com/en-us/um/redmond/projects/mapcruncher/tutorial/version3.0docs/index.htm
I am developing a GPS smart device application with VS 2008 and .NET compact framework 3.5 on windows 6.1 mobile, I wanna to show the current location to the user on windows mobile Form using an interactive google Map control. But I searched a lot for such a control through many sites uselessly can anyone tell me how to find this control or how to do it please ?
GMaps.NET is the best in my opinion:
http://greatmaps.codeplex.com/
Here is a project in codeplex you may try. Download the source code there is no binary for download.
I'm also developing in the same environment and looking at adding navigation to our app. In our case the device will be in a vehicle so we want "Tom Tom" style nav rather than "top down" Google Maps.
We are using Resco controls which are excellent. They have recently released a navigation control that you can just drag on to a form. I'm hoping to evaluate this soon. This stuff isn't cheap but you might want to check out the demo if your project has the budget. Resco are an excellent company to deal with (no affiliation - just that they have made my app look cool and saved me a LOT of work).
http://www.resco.net/developer/mapnavigation/overview.aspx
Cheers
Mark
The built-in emulator from the WP7 Tools doesn't have the Bing App installed, and I don't have any phone hardware to test with. So I'm simply wondering, how can I open the Bing Maps Application to a specific Lat/Long?
Related Questions:
iPhone -- How can I launch the Google Maps iPhone application from within my own native application?
Android -- https://developer.android.com/guide/appendix/g-app-intents.html
It seems that starting from the OS version 7.1 there's a specific task available for this, see BingMapsTask and for directions the BingMapsDirectionsTask.
Unfortunately there is no way to launch the Bing Maps App from within your own application.
In an early CTP there was a way but this has been removed. Hopefully it will return in the future but it is not on any current, public, roadmaps.
This leaves two alternatives.
Option 1
You could perform a search for the lat/long you want to show. The search app does directly integrate with the bing maps app so, assuming that bing can take the lat/long you provide and return something useful, the user would still be able to do whatever they wished within the bing maps app.
This has 2 downsides though. Firstly, you have no control over the search results. And, secondly, you cannot test this on the emulator.
Option 2
You could use the BingMaps control within your own silverlight application.
(Prior to the RTM, it was posible to use the full Silverlight version of the control within your app. But, this had a few quirks and was only ever intended as a stop gap solution.)
While not as fully featured as the app, the control does offer a lot of functionality.
Without a real device, but you could simulate location data, for testing, with the Reactive Extensions.
Even with a real device you will probably want to look at doing this as it's a lot easier than trying to debug while walking or driving around.
Edit:
As per this post by Kevin Marshall, if you're going to use the WebBrowserTask() (option 1 above) prefix your query with "maps:" and URL encode your query string. eg:
var task = new WebBrowserTask();
task.URL = "maps:1%20N%20Franklin%2060606";
or
task.URL = "maps:37.788153%2C-122.440162";
Bing maps silverlight control is now supported out of the box and is part of the tools... learn more about it here: http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/UsingBingMapsLab/Exercise-1-Introduction-to-the-Bing-Map-Control
Yes you can do this. I've got it running in the emulator (however, as many people have said there's no guarantee the Bing Maps for Silverlight control will run on the actual device)
Here is the xaml:
<m:Map Grid.Row="0" x:Name="mapMain" ZoomLevel="5" Mode="AerialWithLabels" CredentialsProvider="YOURBINGMAPSLICENSE" />
and here's some code to set the location in the .cs class
var ppLoc = new Location(-37.821285, 144.97785);
mapMain.SetView(ppLoc, 17);
I'd like to know what could be the best approach to develop a Windows desktop application that has a map navigability control - very similar to those in Google Maps and Live Maps, with drag and drop support and so on.
Initially, due to time restrictions, I was thinking about a WinForms solution - I think one future solution using WPF would be better, but I'd have to learn all that WPF stuff first.
With that in mind, what approach should I take to develop that? It could be a third part tool, or some simple implementation/algorithm that I could take some ideas from. To be honest, I'm kinda lost, so any idea would be helpful.
Thanks, have a great day
take a look at this codeplex project. Reviewing the Source and downloading the sample project should be a good start.
GMap.Net # Codeplex
There is open-source application Kosmos for browsing OpenStreetMap maps
http://wiki.openstreetmap.org/wiki/Kosmos
However it reads OSM data and renders it on the fly.
I guess you need some example which loads map tiles and put them in the right order. There is such an example for OpenStreetMap: project osmclient on the sourceforge (sorry cannot post a link, i am a newbie)
It can be simply redone to load other sources, even ArcGIS, but be sure if it is compatible with the Map Provider licence. E.g. you cannot choose Google Maps, because you must use Google Maps within their API.