Google地图网址扩展 - 缺少Lat Lon

时间:2016-03-20 16:13:07

标签: ios objective-c google-maps

我正在尝试从缩短的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 接受的答案将获得我正在为之工作的应用的促销代码。 ;)

2 个答案:

答案 0 :(得分:0)

听起来您已经弄清楚如何将goo.gl中的短网址扩展为完整的Google地图网址。查看您提供的示例,q参数不是latlng,而是字符串。如果q看起来不像是latlng(也许你可以使用正则表达式来检查),你应该调用Google的Places API或Geocoding API来查找{{1}的地点或地址价值。

对Places TextSearch API的请求如下: q 返回有关寺庙的信息,包括您可以在您的应用程序中使用的latlng。

答案 1 :(得分:0)

以下是展开Goog​​le地图网址

的示例
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权限”