2014-01-16 134 views
-1

另一个HTTP请求我与Windows手机应用程序的工作,我在这里使用其余Places API的为我的数据,我检索数据的JSON给我有关位置附近这样呼吁改变

position: [ 37.77704 , -122.39494 ] 
distance: 1241 
title: Caltrain-San Francisco 
averageRating: 0.0 
category: { Public transport } 
icon: http://download.vcdn.nokia.com/p/d/places2/icons/categories/11.icon 
vicinity: 700 4th St<br/>San Francisco, CA 94107 
having: [ ] 
type: urn:nlp-types:place 
href: http://demo.places.nlp.nokia.com/places/v1/places/8409q8yy-a7395cccbfc4474ba469f3ddc03e041b;context=Zmxvdy1pZD00OWQxZDY0Zi0zODc5LTVlNDAtOWY4ZC04ZGFmNWMyMGZhZDFfMTM4OTg4NDQxMzUxNV8wXzM1MjkmcmFuaz0w?app_id=lp3VaO8uhOFe0akZ4J1m&app_code=JwL7MNaSarML92oqEDshAg 
id: 8409q8yy-a7395cccbfc4474ba469f3ddc03e041b 

而且我注意到,如果我打开

href: http://demo.places.nlp.nokia.com/places/v1/places/8409q8yy-a7395cccbfc4474ba469f3ddc03e041b;context=Zmxvdy1pZD00OWQxZDY0Zi0zODc5LTVlNDAtOWY4ZC04ZGFmNWMyMGZhZDFfMTM4OTg4NDQxMzUxNV8wXzM1MjkmcmFuaz0w?app_id=lp3VaO8uhOFe0akZ4J1m&app_code=JwL7MNaSarML92oqEDshAg 

我将进入包含有关该位置尽可能详细的信息其他网页,所以,我怎么能得到所有这些数据?从HREF

常规和详细数据 我用得到的一般数据

方法就是采用这种

WebClient client = new WebClient(); 
Uri uri = new Uri(transportURL1 + latitude + "%2C" + longitude + transportURL2, UriKind.Absolute); 
client.DownloadStringCompleted += (s, e) => 
{ 
    if (e.Error == null) 
    { 
     RootObject result = JsonConvert.DeserializeObject<RootObject>(e.Result); 
         hereRestProperty = new ObservableCollection<Item>(result.results.items); 
    } 
    else 
    { 
     MessageBox.Show(e.Error.ToString()); 
    } 
}; 
client.DownloadStringAsync(uri); 

所以我的应用场景炫魅显示一般的位置数据,当我点击包含从HREF信息的位置数据,将导航到detailpage之一

该怎么办?

编辑:我的工作就是寻找href和使用HREF调用http请求,但我不知道怎么做的一切......

EDIT2:环顾四周后,我拿出有炫魅的想法与一般信息列表,如果我点击到列表中的项目之一,它会导航到详细信息页面,将请求从该href,但我只是不知道如何执行,在mvvm aproach ...

+0

您从查询返回到服务的数据完全由提供数据的人员/公司/网站定义。您需要联系他们或查看他们的API文档。 – Steve

+0

嗯,我的意思是如何获得href并将其作为另一个http请求 –

+0

您想自己发送HTTP请求,还是将它传递给浏览器以便为用户打开? – Steve

回答

1

如果假设您试图通过添加地点功能来为应用增加价值是安全的,我建议对于Windows Phone 8,您最好启动HERE地图直接使用HERE Maps Launchers API

例如,如果您应用的远足径这将是有意义的增加了一个功能,找到的地方的详细资料,以餐饮,住宿接近该步道 - 但你止跌”您需要创建自己的代码来请求,格式化并显示深入地点数据,只需启动设备上已有的地图应用程序(如有必要,从初始REST请求传入href即可)。这样做的好处有三个方面,首先您可以将这个功能添加到四行代码中,其次以熟悉的格式向用户显示地点信息,最后从设备本身检索信息,从而减轻需要额外增加HTTP请求。

一个或多个以下的任务可能是有用的:

  • ExploremapsShowPlaceTask允许你开始与中心在地图上显示的位置在地图的地图应用程序。
  • ExploremapsSearchPlacesTask允许您使用搜索视图启动地图应用程序。
  • ExploremapsExplorePlacesTask允许您启动显示附近景点的地图应用程序。
  • PlacesShowDetailsByLocationTask允许您使用地点视图为选定地点启动地图应用程序。
  • PlacesShowDetailsByIdHrefTask允许您使用所选地点的地点视图来启动地图应用程序。

注意,如果HERE地图没有在的Windows Phone 8设备上安装时,用户将被引导到从App Store免费下载。

+0

好吧,我不希望我的应用程序依赖于其他应用程序,在这种情况下,如果我如果有人只是不想在这里使用地图(因为某些原因),那么我的应用程序将是无用的 –

+0

没有什么阻止你提供有限的回退选项,在用户:a)没有** HERE Maps **应用程序b)此时不想下载几个MB的数据(例如由于有限的带宽)。在这种情况下,您可以尝试显示从原始REST请求中检索的一些信息。应该注意的是,** HERE Maps **是免费的,并且已经预装在**诺基亚Lumias **上,这已经占据了WP8市场的80%以上。据推测,如果用户已经购买了手机,他们将熟悉安装在其上的标准地图应用程序。 –

+0

根据[AdDuplex]实际上超过90%(http://www.gsmarena.com/90_of_all_shipped_wp8_devices_are_nokia_lumia-news-7008.php) –