Custom zoomable images using Bing maps - c#

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

Related

Bing maps WPF c#. The displayed route covers road labels

This my map:
And this is bing's web map:
As you can see, displayed MapPolyline's routes cover road labels. Is there an option to prevent this?
thanks in advance.
This is to be expected. Most mapping platforms render the map using "map tiles" which have the labels rendered right on the tiles. Any data displayed on the map is rendered above the labels since the labels are not separate from the base map. The Bing Maps V8 and Windows UWP Map controls are the first Bing Maps controls to use vector labels. In these controls the labels are separate from the base map tiles and are rendered above all data other than pushpins. The Bing Maps website is using the Bing Maps V8 control. If you want it is possible to use the Bing Maps V8 control in a WPF application via a web browser control. The Bing Maps V8 control is the main control that most developers use and also has more feature than any other Bing Maps control (and most other map APIs). You can find out more about Bing Maps V8 here:
Documentation: https://msdn.microsoft.com/en-us/library/mt712542.aspx
Interactive Code Samples: http://www.bing.com/api/maps/sdk/mapcontrol/isdk#overview
Also, be sure to use the [bing-maps] tag on stack overflow when asking a Bing Maps question so that the Bing Maps team sees it and can respond quicker to

How to use a specific google map with WP8 Maps control - C#

I want to use this map: http://www.subway.com/storelocator/ with all the subway restaurant positions in my map on Windows Phone 8. I know how to find out the position of the phone and how to zoom in, but I don't know how I can bind in these subway positions. Thanks for any helpful answer.
Based on your question and the original title, I assume you're not actually trying to use Google maps on WP but rather provide your users with the ability to search for Subway store locations within your app? If so, what you really need is the way to get the store locations, which you can do by calling Subway's store location webservice, and then fill and bind the pushpin collection using natively supported Bing maps control.
If I have misunderstood and you are asking how to use Google maps (or rather Google map tiles in the WP Maps control), I'm not sure that's entirely legal. See 10.1.1. in the terms of use.
If you don't need to access or manipulate the store locations data in any way and only want to provide an in-app experience for the app users, you can also simply embed the WebBrowser control and navigate to the store locator page.

How to display a map with a traffic layer on Windows Phone 7?

I'm currently developing a Windows Phone 7 app in which I would like to display a map with a layer of the road traffic.
First, I tried to display a Bing AJAX Map and a Google Map through the webBrowser control. If the map is displayed, the UX is just awful. In fact, the webBrowser control doesn't allow the user to navigate or zoom with his fingers. It captures all the manipulations and doesn't apply them on its content.
Then, I tried to use the Bing Maps control and override the Tile layer with another API like the Nokia one or the OpenStreetMap one (like explained on the Nokia wiki here and here). It works, but none of these API allows to display a traffic layer (or I can't find the way to do it).
Finally, I used the trick to use the Google Maps tiles with a traffic info layer. If it works, I'm pretty sure that this solution is not legal. Some apps on the Windows Phone Store display the Google Maps with a traffic layer, but if they don't use the Bing Map control and override the Tile layer, I don't know how they do...
Does someone know how to display a map with a traffic layer into a Windows Phone 7 app in a legal way ? Did I miss something ? Maybe there is a solution I don't know or I don't think about ?
I really hope that someone will be able to help me !

Create a zoomable map with c#

I want to create a zoomable draggable etc. map of a really big image, the functionality should be like google maps but the map itself comes from me (it will be a galaxy picture).
So I think I have to use this components:
Frontend: http://openlayers.org/
(Example)
Backend: http://sharpmap.codeplex.com/
And connect them with each other, so the frontend will call the backend to display tiles in the current zoomlevel of the map.
I'm new to that map building thing and just want to make sure to not going in the wrong direction, so does it makes sense? Anyone did that before? Or any better ideas?
EDIT
Sorry, forgot that: The user should not have to install any additional stuff and it should run on an Ipad too, so I'm not able to use silverlight, flash etc. Just good old plain JS :)
I had worked on similar requirement but development platform was Silverlight. I had used "DeepEarth" (extended deep zoom) with tiles hosted on the local server.
DeepEarth
DeepZoom
You can try using Bing Control and services which is a paid service. In trial version, you will get Bing logo in the background. Bing Services
Bing control or any such controls with tiling services are appropriate when you want real world map - cities/roads. If you just need to have a zoom in/out feature on an image you can use deepzoom.
I ended up with using openlayers.org for the frontend and building the backend by myself.

Getting Google Earth to work with Silverlight?

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.

Categories

Resources