I have an app that depends on MapControl which isn't currently supported by WinUI 3.0. When might I expect that
to be added?
WinUI 3.0 Preview 2 lists MapControl as a missing platform feature with no timeline given.
https://docs.microsoft.com/en-us/windows/apps/winui/winui3/#missing-platform-features
I don't even need all the advanced functionality -- just something that shows a 2D map and allows pins to be added.
Adding @YuliKl who seems to be assigned MapControl-related issues.
@YuliKl Any news on this?
@YuliKl @StephenLPeters Any updates on this? This is going to end up being a show stopper for me using winUI 3. It's pretty important this gets on a roadmap so plans can be made one way or another.
@Austin-Lamb or @MikeHillberg ?
On the latest roadmap this is considered a stretch goal even after 3.0 release. I'm guessing that means this control might not get updated for years -- if ever. What is the alternative? I could use Bing maps hosted in WebView2 if only it was possible to put pins on the map. Bing doesn't support that though. Can we get that team involved and come up with something at least in the interim?
Bump on this one. The MapControl is pretty much the centrepiece of my UWP app, seeing it listed as stretch goal of 3.x is slightly ominous in regards of me being able to adopt WinUI. Could someone please elaborate with some more concrete info on the plans for MapControl please?
Hey @robloo, we don't have a specific timeframe for a Map control, but I suspect it will be a while. We tried to indicate this in our public feature roadmap (see the last row in the table at the bottom of the page). I could see us adding it in a 3.x point release after 3.0 ships, but I doubt it would be 3.1 or 3.2, which very likely will be focused on other things like Acrylic, XAML Islands, more WPF parity functionality, tooling innovation, and broadening the set of Windows devices we run on.
While that's definitely no the answer you're looking for, WinUI 2 will continue to be maintained and invested-in so using a system XAML/WinUI 2-powered stack would provide that for you. Or, since WinUI 3 will offer a lot of hosting flexibility given it's coming interoperability with HWNDs, perhaps there could be other 3rd party options to power a map experience. Not sure if those alternatives could work for you until we get to a MapControl.
@ryandemopoulos Thanks for your response. I do realize it was added to the roadmap some months ago and the latest comments reflect that. You are correct that that's not the answer I was hoping for but it was basically what I was expecting at this point. You have got to understand how difficult of a place you are putting UWP developers in. I'm now locked out of .net 5, c#9 and WinUI3 for 1-2 years without major rewrites to the app. UWP developers, who invested in Microsofts latest technology, are getting burned in several ways here.
I guess you have made your WinUI decisions knowing full well it would have some negative impact to those heavily invested in UWP. You made that decision based on UWP usage numbers most likely. Still, I think something should have been done to keep UWP developers from being impacted in this way. They are really the most loyal developers - or those most heavily invested in the tech becoming WinUI3 at this point.
Reguardless, I have no choice but to pursue rewrites for the MapControl and other missing functionality in WinUI3. I appreciate at least being able to firmly plan on that now.
Its also great you are focusing on closing the feature gap with WPF. Wish it was done 2-3 years ago but better late than never.
Keep up the good work with WinUI3. Its unfortunate I'm in the position I am but overall it will be beneficial to Windows. Hoping a lot of the decisions you are making are also to update the shell and Microsoft's legacy apps.
You do have to wonder if it would not be better, easier, and more futureproof, to perhaps transition away from a MapControl, and instead offer a WebView/WebView2 implementation, so future updates can come online. And who knows, maybe even enable Apple Maps and Google Maps support at some point by having a ServiceProvider API
@ryandemopoulos Thanks for the update. Much like @robloo it's a frustrating time to be a UWP developer, seeing the platform placed on the back burner having committed to it. What I would personally like to see if feasible would be an update of the roadmap that offers clear milestones with migration paths for UWP developers. For example:
I'm not particularly bothered by MS deciding to pull the plug on UWP which appears to be the case, makes sense in a lot of ways, just want to be confident the pathway exists to move my work to a WinUI based framework and have an approximate idea of timescales so I can plan ahead accordingly. I'd argue that a complete 'escape route' for UWP devs should really be in place by the time .NET6 drops.
@mdtauk But for example with MapControl you can leverage offline maps!
@mdtauk I looked into using a map within webview already. The issue is the APIs dont support really anything. MapControl has a lot of advanced functionality to draw on the map. I only need push pin support in my case; however, I can't even place multiple pins with any online maps provider and control the zoom level. Best I can do with tricks is to place a single pin. No offline support is unfortunate as well but would be tolerable if anything else worked.
MapControls are expensive to implement primarily due to the data. Even using OpenStreetMaps you have to pay for rendered tile server data. Otherwise, adding this functionality, and storage capacity to your company's existing servers is not cheap.
It anyone knows of some fancy math or techniques that could be used to calculate the geographical position coordinates of the pixels in a Google or Bing maps there are some ideas. It might be possible to write a new control using a layered technique and manually drawing on top of a webview2 containing the map on the bottom layer. Keeping things positional synronized during movement would also be difficult though. Recalculation when the underlying map changed projection modes would be nearly impossible I suspect.
It anyone knows of some fancy math or techniques that could be used to calculate the geographical position coordinates of the pixels in a Google or Bing maps there are some ideas. It might be possible to write a new control using a layered technique and manually drawing on top of a webview2 containing the map on the bottom layer. Keeping things positional synronized during movement would also be difficult though. Recalculation when the underlying map changed projection modes would be nearly impossible I suspect.
If Microsoft were to go the wrapped WebView approach with a future Map Control - it would need to have Offline data support, as well as supporting the drawing of polygons on-top of the map layers. It would also need to be hardware accelerated.
Chromium can do all this, using PWA tech AFAIK.