WEB开发网
开发学院软件开发Java 使用 Groovy 构建社交网络混搭(Mashup)应用程序... 阅读

使用 Groovy 构建社交网络混搭(Mashup)应用程序

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 因此,我可以编写一项服务,使用 Groovy 构建社交网络混搭(Mashup)应用程序(10),它获取 Twitter 提供的位置字符串并返回坐标,这项服务有一点复杂,这些应用程序使用实际的坐标频繁更新用户的位置,因此,因为 Twitter 帐户的位置是可选的,也就是说

因此,我可以编写一项服务,它获取 Twitter 提供的位置字符串并返回坐标。这项服务有一点复杂,因为 Twitter 帐户的位置是可选的。也就是说,用户不一定会提供它,并且 Twitter 不会尝试验证它。因此,即使帐户确实提供了一个 String 值,它也可能是无效的,或者 Google 可能会为它返回多个坐标集。此外,一些用户使用特殊的应用程序(如手机上的 Twitter 客户端),这些应用程序使用实际的坐标频繁更新用户的位置。因此,GoogleMapsService 在返回坐标之前要做一些清理工作,如清单 12 所示:


清单 12. 使用 Google 的地理编码服务
package org.disco.geotweet.service 
 
public class GoogleMapsService { 
 
 private static String KEY = "YOUR_KEY" 
 
 def getLocationCoordinates(location) { 
 if (location.contains("iPhone:")) { 
  //iPhone: 39.035248,-77.138687 
  def iloc = location.replace("iPhone: ", "") 
  def scoords = iloc.split(",") 
  return [latitude: scoords[0], longitude: scoords[1]] 
 } else { 
  def encdLoc = URLEncoder.encode(location) 
  def response = 
   "http://maps.google.com/maps/geo?" + 
   "q=${encdLoc}&output=xml&key=${KEY}".toURL().getText() 
  def root = new XmlSlurper().parseText(response) 
  if (root.Response.Placemark.size() == 1) { 
  def coords = root.Response.Placemark.Point.coordinates.text() 
  def scoords = coords.split(",") 
  if (scoords.size() > 1) { 
   return [latitude: scoords[1], longitude: scoords[0]] 
  } else { 
   return [:] 
  } 
  } else { 
  return [:] 
  } 
 } 
 } 
} 

上一页  5 6 7 8 9 10 

Tags:使用 Groovy 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接