我目前有一个PHP脚本,允许用户输入英国邮政编码.
我想知道是否有办法从他们输入的邮政编码中获取地理位置.(通过谷歌的API或什么?)
我尝试了http://code.google.com/apis/maps/documentation/geocoding/index.html,但它需要一个完整的地址,而我只有一个邮政编码.
帮助将不胜感激,谢谢:)彼得
免责声明:我仔细阅读了这个主题: 街道地址搜索字符串 - Python或Ruby 以及许多其他资源.
到目前为止,对我来说没什么用.
在这里有一些更多的细节我正在寻找的是:
规则很轻松,我绝对不会要求一个涵盖所有案例的完美代码; 只是一些简单的基本假设,地址应采用以下格式:
a)街道号码(1 ... N位数);
b)街道名称:一个或多个单词大写;
b-2)(可选)如果可以用缩写作为前缀,那将是最好的."S.","N.","E.","W"
c)(可选)单位/公寓/等可以是任意(包括空)数量的任意字符
d)街道"类型":("st.","ave.","way")之一;
e)城市名称:1个或更多大写词;
f)(可选)州名缩写(2个字母)
g)(可选)zip,任意5位数.
以上都不需要是有效的东西(例如现有的城市或邮编).
到目前为止,我正在尝试这样的表达式:
pat = re.compile(r'\ d {1,4}(\ w +){1,5},(.*),(\ w +){1,5},(AZ | CA | CO | NH), [0-9] {5}( - [0-9] {4})?',re.IGNORECASE)
>>> pat.search("123 East Virginia avenue, unit 123, San Ramondo, CA, 94444")
Run Code Online (Sandbox Code Playgroud)
不要工作,对我来说理解原因并不容易.具体来说:我如何在我的模式中将一组任何单词与应该遵循的特定单词分开,如州名缩写.或街道"类型("st.,ave.)?
无论如何:这是我希望得到的一个例子:给定def ex_addr(文本):#re re magic#返回第一个地址(所有地址?)或者如果没有找到则返回None
for t in [
'The meeting will be held at 22 West Westin st., South Carolina, 12345 on Nov.-18',
'The meeting will be …
Run Code Online (Sandbox Code Playgroud) 我有许多餐馆都提供给伦敦的某些邮政编码区域,例如:
EC1
WC1
WC2
W1
当有人搜索送到他们家的餐馆时,他们会输入完整的邮政编码.
有些人使用空格正确输入邮政编码,其中一些只输入附加的所有字母和数字,没有空格分隔符.为了协调事物,我在尝试匹配之前删除了邮政编码中的任何空格.
到目前为止,我曾经通过检查它是否以相关的前缀开头来匹配邮政编码到前缀,但后来我意识到这不是万无一失的:
WC1E123
=>正确匹配 WC1
W1ABC
=>正确匹配 W1
W10ABC
=>不匹配W1
,应该只匹配W10
前缀如果没有空格的完整邮政编码,如果它与给定的前缀匹配,同时没有使上面的W1
/ W10
test 失败,我怎么知道呢?
是否有任何解决方案可以解决问题,这不会强迫客户输入邮政编码,空间位置正确?
我有一个带开始和结束邮政编码的csv文件(英国相当于美国邮政编码),并希望计算两者之间的简单距离,公路旅行距离和旅行时间.我想要走的路是以某种方式使用谷歌地图.我首先尝试使用一些spreadhsheet和以下网址http://maps.google.com/maps?saddr="&B2&"&daddr ="&A2&"但是
是否存在某个城市/地点的邮政编码为“XXXX”并且属于 2 个或更多时区?
我不确定这个问题是否有效。但由于互联网上有关位置和时区的大量信息,我有点困惑。
(我的要求实际上是将用户的国家、城市、邮政编码和时区信息存储在数据库中)
database timezone geolocation postal-code google-maps-timezone
英国的GeoLocation转换数据库是否有良好的物理地址?我正在尝试使用它来构建一个用于Web应用程序的globrix样式搜索框http://www.globrix.com/.任何指针都会很好.我一直在寻找几个小时.我找到了几个将英国邮政编码转换为地理位置的方法.但我需要在Globrix上列出的地址.
编写一个程序,其中我必须显示附近的地方使用postal code
这样的首先我必须geo locations
通过使用用户的邮政编码(邮政编码accepted by user
),然后需要显示附近的地理位置的位置
仍然我正在接收用户current location
并JSON
根据我使用的条件显示附近的地方,例如:显示<2英里的位置distance
.
为了让current location
我使用这样的东西:
GPSTracker gps;
double latitude, longitude ;
gps = new GPSTracker(LocationsActivity.this);
if(gps.canGetLocation()){
latitude = gps.getLatitude();
longitude = gps.getLongitude();
Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
} else {
// can't get location
// GPS or Network is not enabled
// Ask user to enable GPS/network in settings
gps.showSettingsAlert();
}
Run Code Online (Sandbox Code Playgroud)
并 …
我有世界上最简单的表格,用于查找英国邮政编码的lat/lng值(加载完整的英国邮政编码数据):
CREATE TABLE postcodes (
postcode char(7) NOT NULL,
lat double(10,6) NOT NULL,
lng double(10,6) NOT NULL,
KEY postcode (postcode)
)
Run Code Online (Sandbox Code Playgroud)
"邮政编码"字段中的邮政编码在前半部分的末尾有2位数字,或者一个空格.我认为这个空间对于它们如何匹配(??)的完整性很重要,而且我不想删除表中的空格,因为我还要拔出用于显示目的的邮政编码(我不喜欢我想要一个重复的领域,因为我很挑剔!).例子:
'LE115AF', 'BS6 5EE', 'W1A 1AA', 'BS216RS', 'M3 1NH'
Run Code Online (Sandbox Code Playgroud)
所以,有些有空格,有些则没有空格.大多数是7个字符,有些只有6个字符.
无论如何,重点是我希望用户能够输入邮政编码查询,包括部分邮政编码,有或没有空格,并且如果他们的输入字符串有效,总是找到匹配(即他们不输入完整或部分邮政编码,表中没有.
这是我到目前为止所做的事情(在PHP的帮助下):
{...} WHERE `postcode` LIKE '" . str_replace(' ','%',$query) . "%' LIMIT 1
Run Code Online (Sandbox Code Playgroud)
这适用于:
但不适用于这些查询:
我猜我需要以某种方式做一些MySQL字符串函数魔法,如果行的邮政编码字段中有空格,并相应地调整我的WHERE子句逻辑?有人对最佳方法有任何建议吗?我理想的还想:
我需要使用正则表达式重新创建这个逻辑.
如果$ postcode.length> 0和$ postcode.length <10 AND $ postcode的第一个字符是一个字母而(第二个或第三个字符是一个数字)那么它就是一个匹配.
我想出了以下正则表达式:
/((^ [AZ] + [0-9] [0-9]){1,9} $)/ I
它需要匹配这些示例:
编辑:我当前的正则表达式与列表中的任何示例都不匹配.我无法理解为什么.任何帮助,将不胜感激.
我有一个数据框,df
其中包含带有英国邮政编码值的多个观察值。我想创建一个新列,用于计算每个观测值 df$origin 和 df$dest 中邮政编码之间的距离。
我没有获得 Google Maps API 的资金,想知道是否可以使用PostcodeioR
? 或者在 RStudio 中有替代的免费方法吗?
# MRE
origin <- c("S6 2PA", "S35 0DP", "M1 6BD", "DE55 4JF")
dest <- c("S5 7AU", "S5 7AU", "S5 7AU", "S5 7AU")
df <- tibble(origin,dest)
Run Code Online (Sandbox Code Playgroud)
优选地,所创建的距离是驾驶距离,而不是直线距离,但是我意识到这可能是不可能的。