我一直在尝试使用 C# 尝试创建一个 Windows 窗体,该窗体具有具有以下初始 URL 的 Web 浏览器组件:
queryAddress.Append("https://www.google.com/maps/place/Costa+Rica/&output=embed");
wbGMap.Navigate(queryAddress.ToString());
我查看了这里和其他网站,希望找到一种方法来保存位置的纬度和经度值。例如,如果我使用地图搜索中的构建在地图上搜索 X Hotel,我希望获取这些坐标并通过按钮事件将它们显示在每个文本字段上。然而到目前为止我找到的唯一解决方案是复杂的 google API。
有没有一种简单的方法可以提取这两个值以供以后使用?
提前非常感谢您的任何提示或建议。
当您玩过字符串操作时的备忘单:
string url = "https://www.google.com/maps/place/Costa+Rica/@10.3118691,-84.2370058,6z/data=!4m2!3m1!1s0x8f92e56221acc925:0x6254f72535819a2b";
int pos1 = url.IndexOf("/@");
string rightpart = url.Substring(pos1+("/@".Length));
int pos2 = rightpart.IndexOf("/");
string coords = rightpart.Substring(0, pos2);
var split = coords.Split(',');
var lat = split[0];
var lon = split[1];
var zzz = split[2];
或高级正则表达式版本:
string url = "https://www.google.com/maps/place/Costa+Rica/@10.3118691,-84.2370058,6z/data=!4m2!3m1!1s0x8f92e56221acc925:0x6254f72535819a2b";
var match = Regex.Match(url, @"http.*/@(?<lat>-?\d*\.\d*),(?<lon>-?\d*\.\d*),(?<zzz>\d*z).*");
var lat2 = match.Groups["lat"].Value;
var lon2 = match.Groups["lon"].Value;
var zzz2 = match.Groups["zzz"].Value;
library(stringr)
url = "https://www.google.com/maps/place/Costa+Rica/@10.3118691,-84.2370058,6z/data=!4m2!3m1!1s0x8f92e56221acc925:0x6254f72535819a2b"
str_extract(url,'\\d+\\.\\d+\\,\\-\\d+\\.\\d+') %>% str_split(',') %>% unlist()
# [1] "40.7540123" "-73.9841851"