如何用地图坐标建立一个字符串?

时间:2014-12-08 11:30:29

标签: java string foursquare

我使用foursquare API,为了搜索一些我必须作为参数传递纬度和经度的字符串的地方:37.963790,23.683090。如果我愿意,我还想为纬度和经度添加一些值。在尝试使用双打和bigDecimals但没有成功之后,我尝试了:

Long lat1 = Long.valueOf("37");
Long lat2 = Long.valueOf("963790");
Long long1 = Long.valueOf("23");
Long long2 = Long.valueOf("683090");
StringBuilder sb = new StringBuilder();
sb.append(lat1);
sb.append(".");
sb.append(lat2);
sb.append(",");
sb.append(long1);
sb.append(".");
sb.append(long2);
String ll = sb.toString();

我已经尝试了所有这些长片作为字符串sb.append(lat1.toString())。 在每种情况下我得到的字符串似乎是我想要的,但结果不是。我没有收到错误。如果未正确设置此参数,则会出现此错误:

Error occured: 
[0m[0m13:25:34,463 INFO  [stdout] (http-/0.0.0.0:8080-1)   code: 400
[0m[0m13:25:34,463 INFO  [stdout] (http-/0.0.0.0:8080-1)   type: param_error
[0m[0m13:25:34,463 INFO  [stdout] (http-/0.0.0.0:8080-1)   detail: ll must be of the form
XX.XX,YY.YY (received java.nio.HeapByteBuffer[pos=0 lim=19 cap=20])

当我尝试添加utf-8时出现此错误:

ByteBuffer a =Charset.forName("UTF-8").encode(sb.toString());
String ll = a.toString();

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

为什么不做呢

String iWant = lat1 + "." + lat2 + "," + long1 + "." + long2

如果您想以不同方式格式化数字,请使用NumberFormat类