我需要为每个请求对200个地址进行地理编码,每天执行大约3,000个请求.我将使用PHP来做这个服务器端.我看过如何将地址转换为纬度/经度?,但找不到谷歌地图HTTP请求API或雅虎地理编码REST API(不能使用JavaScript,因为这是服务器端)发送多个地址的方法.
我将主要使用它来根据坐标对地址进行排序,如果API支持,请填写每个地址的任何缺失数据.地址仅限于美国.地理编码的地址将来自用户输入,因此可以是自由形式,如"街道地址,邮政编码"或"城市,州"等.准确性对于坐标来说并不重要,例如在500英尺左右.
是否有免费的API来处理这个问题?有没有办法让雅虎或谷歌在请求中执行多个位置?
当我使用下面的代码警告空值时?这是为什么?
HTML
<body onload="initialize()">
<div id="map_canvas" style="width: 320px; height: 480px;"></div>
<div>
<input id="address" type="textbox" value="Sydney, NSW">
<input type="button" value="Encode" onclick="display()">
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function codeAddress() {
var address = document.getElementById("address").value;
var loc=[];
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
loc[0]=results[0].geometry.location.lat();
loc[1]=results[0].geometry.location.lng(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一个网络服务,这将允许我获得特定Lat/Long的县名(而不是国家/地区).我将在服务器应用程序(可能是Java应用程序)中执行查找.如果我想有一些库,它没有一个web服务,但我想要最新的信息.我已经看了很多支持这个的API,但到目前为止我还没找到一个有效的API.我尝试过像这样的Yahoo API:
http://where.yahooapis.com/geocode?q=39.76144296429947,%20-104.8011589050293
但它没有填充地址信息.我试过一些"旗帜"选项也无济于事.
我也浏览了Googles API,但我读过很多他们没有填充县的地方.
那么有没有人知道任何带Lat/Long并返回与该位置相关联的县的API?如果你有任何例子,这将是伟大的.
我还想知道哪些API允许在商业应用程序中使用.我发现的很多数据都说你不能用数据来赚钱.我可能正在阅读那些错误,但我正在寻找建立一个我可能会收取使用这些数据的服务.所以我需要选择.也许是免费服务,而我正在探索各种选择,并在未来支付服务.
我一直在尝试使用一些ajax来保存我的应用程序中的场所位置,并在堆栈溢出时偶然发现以下代码
function getLatLong(address)
{
var geocoder = new google.maps.Geocoder();
var result = "";
geocoder.geocode( { 'address': address, 'region': 'uk' }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
result[lat] = results[0].geometry.location.Pa;
result[lng] = results[0].geometry.location.Qa;
} else {
result = "Unable to find address: " + status;
}
});
return result;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是当我调用函数时它什么也没有返回,当我调试并在chrome中设置断点时,它会在返回结果之前先破坏结果[lat] = results [0] .geometry.location.Pa;
我知道数组应该声明为类型数组,但即使我刚刚返回结果[0] .geometry.location对象也没有被返回
我该怎么做才能返回lat/long的位置,以便我可以存储在我的数据库中?
是否有针对iOS的(离线)地理编码框架,库或数据库?从哪里获取数据?
我需要能够将全球(或至少在美国)城市的街道地址划分为纬度和经度,用于日出和日落计算.
信息必须采用适用于iPhone OS的格式.(数据库文件或用C/Objective-C编写)
有许多网站包含可点击的地图,可突出显示区域,mouseover并允许用户将选择从世界地图视图缩小到大陆级别.这是一个有趣的例子:davidlynch.org.
这些可点击地图中的许多地图都是使用HTML图片地图实现的,而另一种选择是使用Google的GeoChart API.关于HTML图像映射选项,我想知道人们在哪里获得所有"原始数据",所有国家和地区边界多边形.有免费资源吗?关于Google GeoChart选项,我想知道这是否可扩展,或者API调用的数量是否有限?
有没有人对免费库的可用性有一些建议,允许直接实现可定制区域的可点击地图?
在Objective-C中,此代码可以很好地绘制地址并找到经度和纬度坐标:
NSString *address = @"1 Infinite Loop, CA, USA";
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:address
completionHandler:^(NSArray* placemarks, NSError* error){
// Check for returned placemarks
if (placemarks && placemarks.count > 0) {
CLPlacemark *topResult = [placemarks objectAtIndex:0];
// Create a MLPlacemark and add it to the map view
MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:topResult];
[self.mapView addAnnotation:placemark];
[placemark release];
}
[geocoder release];
}];
Run Code Online (Sandbox Code Playgroud)
我一直在寻找使用Swift如何做到这一点的日子?!有人能指出我正确的方向吗?你能解释一下,如果用户需要互联网连接才能使用.对不起,如果这些问题听起来有点基础,但我对此很新,每天都在学习.
我知道我必须使用此代码,但无法找到实现它的方法
func geocodeAddressString(_ addressString: String!,
completionHandler completionHandler: CLGeocodeCompletionHandler!)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ggplot2和地图来绘制纽约州的县名.我的方法是通过县找到纬度和经度的方法(我假设这是县的中心,但这可能是错误的思考),然后使用geom_text在地图上绘制名称.它没有像我预期的那样表现,因为它每个县都在绘制多个名字.
我正在寻找的结果是每个文本(县)的中心位于其各自县的中心.
除了解决这个问题,我还很高兴能帮助理解我对ggplot思考的问题.
先感谢您.
library(ggplot2); library(maps)
county_df <- map_data('county') #mappings of counties by state
ny <- subset(county_df, region=="new york") #subset just for NYS
ny$county <- ny$subregion
cnames <- aggregate(cbind(long, lat) ~ subregion, data=ny, FUN=mean)
p <- ggplot(ny, aes(long, lat, group=group)) + geom_polygon(colour='black', fill=NA)
p #p of course plots as expected
#now add some county names (3 wrong attempts)
p + geom_text(aes(long, lat, data = cnames, label = subregion, size=.5)) #not correct
#I said maybe I'm confusing it with the same …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制使用RgoogleMaps包查询的Google地图,并将其与ggplot结合使用.最后,我想显示总人口的使用情况geom_point,有点类似于下图,但是由于过度密谋,我试图集中精力于蒙哥马利地区.
我很沮丧,因为我不能画出我的查询地图中R.我尝试了几个包,如中read.jpeg和png,但它并没有完全制定.
R代码:
#query google map
al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg",
format="jpg",maptype="roadmap")
#load only specific states
alabama <- subset(all_states, region %in% c("alabama"))
#population
p1 <- ggplot()
p1 <- p1 + geom_polygon(data=alabama,
aes(x=long, y=lat, group=group), colour="white", fill="grey10")
p1 <- p1 + geom_point(data=quote, aes(x=IntPtLon, y=IntPtLat, size=TotPop,
color=TotPop),colour="coral1") + scale_size(name="Total Pop")
Run Code Online (Sandbox Code Playgroud)

编辑:
这是我粗略的结果.我还是想:

al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain')
al1MAP <- …Run Code Online (Sandbox Code Playgroud) 我很好奇Google地理编码器的工作原理.
我一直在研究开源地理编码器的一些实现,例如geocommons的地理编码器或PostGIS的新Tiger Geocoder.这大致是我目前所知的(希望证明我一直在做我的作业):
我意识到,在开源地理编码器的核心,有三个主要元素.
1.-一个地址规范化器,它接受一个任意字符串并对其进行规范化(以此为例):
normalize_address('address string');
e.g.: SELECT naddy.* FROM normalize_address('29645 7th Street SW Federal Way 98023') AS naddy;
address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | internal | location | stateabbrev | zip | parsed
---------+-------------+-----------------------+------------------+---------------+----------+----------+-------------+-------+--------
29645 | | 7th Street SW Federal | Way | | | | | 98023 |
Run Code Online (Sandbox Code Playgroud)
和:
2.-一个地理编码器,对核心算法为Levenshtein距离的名称进行一些神奇的模糊匹配.
一个很好的例子是维基百科文章中的一个,它计算单词kitten和sitting之间的Levenshtein距离(距离是3,因为这是将一个字符串更改为另一个字符串所需的编辑数):
kitten ? sitten (substitution of 's' for 'k')
sitten ? sittin …Run Code Online (Sandbox Code Playgroud) geocoding ×10
google-maps ×4
javascript ×3
ggplot2 ×2
r ×2
geolocation ×1
ggmap ×1
html ×1
iphone ×1
jquery ×1
location ×1
mkmapview ×1
objective-c ×1
swift ×1
world-map ×1
yahoo-maps ×1