Централна карта между две точки WinRT

Опитвам се да центрирам картата на Windows Phone между две точки, коригирайки центъра и мащаба, за да направя тези точки видими едновременно.

В Android и IOS има функции за това, като пример това е как да го направите в Android:

LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(myPos.getPosition());
builder.include(defaultPos.getPosition());
mapa.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 50));

Как мога да направя същото в WinRT?

Благодаря предварително.


person Nanoc    schedule 21.08.2014    source източник


Отговори (2)


Ако се насочвате към Windows Phone 8.1 вместо към WinRT (Windows 8/8.1), тогава можете да направите следното:

var geoboundingBox = new Windows.Devices.Geolocation.GeoboundingBox(
new BasicGeoposition() { Latitude = 40, Longitude = -90 }, 
new BasicGeoposition() { Latitude = 45, Longitude = -100 });
map.TrySetViewAsync(new Geopoint(geoboundingBox.Center));
person rbrundritt    schedule 21.08.2014
comment
Трябва да го направя на Universal APP, както на телефона, така и на компютъра - person Nanoc; 21.08.2014
comment
Добре. Първо, няма универсален контрол на картата за WP/WinRT. Въпреки това е възможно да използвате Bing Maps в универсални приложения. Написах публикация в блог как да направя това тук: blogs.msdn.com/b/bingdevcenter/archive/2014/06/24/ - person rbrundritt; 21.08.2014
comment
Ще ви трябват и двата фрагмента код, които предоставих, за да правите това, което искате, в универсално приложение. - person rbrundritt; 21.08.2014
comment
Знам, изглежда много лесно подобно на android или ios, но не мога да намеря класовете, необходими за Phone (Windows.UI.Xaml.Controls.Maps), мога да го намеря само на компютър (Bing.Maps). - person Nanoc; 21.08.2014
comment
Уверете се, че това е универсално приложение, което създавате. Универсалните приложения са за Windows Phone 8.1 и по-нова версия. Ще намерите само пространството от имена Windows.UI.Xaml.Controls.Maps в приложението WP8.1. Ако погледнете публикацията в блога, която предоставих в по-ранен коментар, тя ви показва как да получите достъп до това пространство от имена в универсално приложение, използвайки символи за условна компилация. - person rbrundritt; 21.08.2014
comment
Освен това можете да превключите целта на кода, като използвате падащите менюта в горната част на файла. Вероятно е настроено на приложение Windows Store, превключете го на Windows Phone и пространството от имена трябва да изглежда разрешено. - person rbrundritt; 21.08.2014
comment
Работейки по телефона, имайте предвид, че Geopoint, а не GeoPoint VS няма да го разреши. - person Nanoc; 21.08.2014
comment
Да, прав си за Geopoint. Силата на навика към думите с камилски регистър, когато пиша. - person rbrundritt; 21.08.2014

За контролата на Bing Maps WinRT можете да направите това по два различни начина. Първият е да създадете LocationRect от двете точки. Това ще създаде ограничителна кутия за вашите местоположения. Можете или да зададете изгледа на картата на този LocationRect, като използвате метода SetView на картата, който ще центрира и мащабира тези местоположения, или можете да използвате свойството Center на този LocationRect, за да зададете изгледа на картата, така че да е центриран върху тези две локации, без да увеличавате картата. Нещо подобно трябва да работи:

var bounds = new LocationRect(new Location(40,-90), new Location(45,-100));
map.SetView(bounds.Center);

Друг метод изисква малко повече изчисления, но е добър вариант, за да разберете дали попаднете на други контроли на картата, които нямат лесно решение като първото, което споменах. Този метод се състои в изчисляване на централната координата между двете местоположения. Имам публикация в блог за това как да направя това от много стара версия на Bing Maps тук: http://rbrundritt.wordpress.com/2008/10/14/calculating-the-midpoint-of-a-line-segment/ Логиката може да бъде лесно мигрира към други езици за програмиране.

Изглежда, че сте нов в разработването с Bing Maps в WinRT. Препоръчвам ви да разгледате моята безплатна електронна книга за това как да създавате интелигентни приложения за Windows Store за местоположение. Той навлиза в много подробности за това как да създавате страхотни приложения с помощта на контролата Bing Maps. Можете да изтеглите копие от него тук: http://rbrundritt.wordpress.com/my-book/

person rbrundritt    schedule 21.08.2014
comment
Това са класове за контрола AJAX! на картите на bing, виждам LocationRectangle за Silverlight, но използвам WinRT API, някаква идея? - person Nanoc; 21.08.2014
comment
LocationRect е част от Bing Maps SDK за WinRT: msdn.microsoft.com/en -us/library/hh846491.aspx - person rbrundritt; 21.08.2014
comment
Това е пространството от имена на Bing.Maps (PC), но на Phone трябва да използвам Windows.UI.Xaml.Controls.Maps и не мога да видя тези класове или други подобни. - person Nanoc; 21.08.2014