我正在尝试从缩短的Google地图网址获取lat lon值,https://goo.gl/maps/81bgEw3JYMT2
我尝试使用googleapi并获得以下回复https://www.googleapis.com/urlshortener/v1/url?shortUrl=https://goo.gl/maps/81bgEw3JYMT2&key=USE_YOUR_KEY
{
"kind": "urlshortener#url",
"id": "https://goo.gl/maps/81bgEw3JYMT2",
"longUrl": "https://maps.google.com/?q=Meenakshi+Amman+Temple,+Madurai,+Tamil+Nadu+625001&ftid=0x3b00c58461e46987:0xf134621ce5286703&hl=en-US&gl=us&shorturl=1",
"status": "OK"
}
我还尝试使用重定向网址进行检查,然后得到以下结果:https://maps.google.com/?q=Meenakshi+Amman+Temple,+Madurai,+Tamil+Nadu+625001&ftid=0x3b00c58461e46987:0xf134621ce5286703&hl=en-US&gl=us
检查重定向网址的代码,
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0];
[request setHTTPMethod:@"HEAD"];
NSURLResponse *response = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSURL *finalURL = response.URL;
还有其他方法可以获得lat lon值吗?
Bounty :接受的答案将获得我正在为之工作的应用的促销代码。 ;)
答案 0 :(得分:0)
听起来您已经弄清楚如何将goo.gl中的短网址扩展为完整的Google地图网址。查看您提供的示例,q
参数不是latlng,而是字符串。如果q
看起来不像是latlng(也许你可以使用正则表达式来检查),你应该调用Google的Places API或Geocoding API来查找{{1}的地点或地址价值。
对Places TextSearch API的请求如下:
q
返回有关寺庙的信息,包括您可以在您的应用程序中使用的latlng。
答案 1 :(得分:0)
以下是展开Google地图网址
的示例public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
String expandedURL1=expand("GIVE YOUR SHORTNED URL");
Log.d("Expanded", "run: "+expandedURL1);
}
}).start();
}
public static String expand(String url) {
String s3 = "";
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
int s = connection.getInputStream().read();
URL s2 = connection.getURL();
s3 = String.valueOf(s2);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return s3;
}
}
代码的输出是: D /扩展:运行:“在日志中将打印扩展的URL”
“确保授予INTERNET权限”