我目前正在使用谷歌地图的反向地理编码API将从iPhone的CoreLocation API接收的长/转换转换为谷歌应用引擎服务器上的城市/州信息.
这会被视为违反条款吗?我做了一些研究,但找不到这个问题的直接答案.
现在,我们将免费发布我们的iPhone应用程序.
我有这个代码请求谷歌更正输入的地址,并需要它返回城市的英文名称:
function gmap_query_xml($in_address) {
$base_url = "http://maps.google.com/maps/geo?output=xml®ion=US&language=en&key=". KEY;
$request_url = $base_url . "&q=" . urlencode($in_address);
return simplexml_load_file($request_url);
}
Run Code Online (Sandbox Code Playgroud)
然后,
$xml = gmap_query_xml($in_address);
Run Code Online (Sandbox Code Playgroud)
最后获得城市名称:
if ($xml) {
$city = (string) $xml->Response->Placemark->AddressDetails->Country->AdministrativeArea->SubAdministrativeArea->Locality->LocalityName;
}
Run Code Online (Sandbox Code Playgroud)
这会返回正确的城市名称,但是!它用母语表示.尝试罗马 - 你得到罗马,尝试基辅,你会得到Киев.
怎么解决这个问题?谢谢!!
我们正在构建使用基于位置的定价的服务.用户可以输入地址并查看其区域中的价格,这由各种服务器端算法确定.然后可以根据这些价格订购商品.
我想知道在这种情况下我们是否可以使用客户端地理编码(以避免达到Google Maps API使用限制),例如用户输入他的地址,浏览器使用JS库获取地理编码结果并将其包含在表单提交中.问题是用户可能会篡改表单提交,并可能将订单下达到他的地址,以获取适用于不同坐标集的价格.
我想听听你对如何确保这一点的建议.例如,如果地理编码结果可以某种方式签名以验证它没有被篡改,那将是惊人的吗?
我在当前项目中使用gmaps4rails非常棒的gem,并且必须在DB中导入超过一千个应该充当gmappable的对象.
然而,并非所有人都有正确的地址!因此,当我尝试导入时,在第一个无法使用Gmaps4rails :: GeocodeStatus进行地理编码的地址上失败.
是否有可能在可能的情况下跳过错误和地理编码?
我想出了这个:
acts_as_gmappable :process_geocoding => false
before_save :prepare_gmaps
private
def prepare_gmaps
begin
data = Gmaps4rails.geocode(address).first
self.latitude= data[:lat]
self.longitude= data[:lng]
rescue Gmaps4rails::GeocodeStatus
end
end
Run Code Online (Sandbox Code Playgroud) validation geocoding ruby-on-rails ruby-on-rails-3 gmaps4rails
我想从经度和纬度获得城市名称.我正在使用以下代码,但它返回整个地址,包括城市名称,邮政编码,省份和国家/地区.我只想要城市名称.
$.ajax({ url:'http://maps.googleapis.com/maps/api/geocode/json?latlng='+position.coords.latitude+','+position.coords.longitude+'&sensor=true',
success: function(data){
alert(data.results[4].formatted_address);
}
});
Run Code Online (Sandbox Code Playgroud)
请查看地理编码的结果
{
"long_name" : "Vancouver",
"short_name" : "Vancouver",
"types" : [ "locality", "political" ]
},
Run Code Online (Sandbox Code Playgroud) 我正在尝试学习如何使用Javascript库传单和d3来创建各种地图可视化.
我一直在关注这个教程,它创建了一个具有一定互动性的美国等值线图.这提供了我需要的一些东西,但我想要的主要功能是根据它们属于哪个区域来分类纬度/经度坐标.
这意味着,在教程地图中,例如,如果我有一个纬度较长的值(55,-3)属于亚利桑那州的多边形状态,程序可以将此点归类为属于亚利桑那州.
在传单(或d3)库中是否有一个函数允许我输入lat长坐标作为参数并返回它所属的特征的名称?上面的教程允许您通过onEveryFeature属性将函数附加到每个要素,并且可以在每个要素悬停时触发鼠标悬停事件.当然有一种方法可以将此功能扩展到数字输入数据而不是鼠标点?
我正在构建一个使用GMaps API v3的应用程序,并利用地理编码功能,我不知道它是否更好地存储在数据库中:
你会推荐什么?
提前致谢!
google-maps geocoding geolocation coordinates street-address
我的代码工作正常,但我似乎无法到达树的更深层部分.我试图拉经度和纬度.下面的代码将'status'拉为'OK'没问题(在响应的最后).'geometry' - >'location' - >'lat'和'lng'的语法是什么?
这是我的代码:
string RawAddress = "163 Leektown Road, New Gretna, NJ 08004";
string Address = RawAddress.Replace(" ", "+");
string AddressURL = "http://maps.google.com/maps/api/geocode/json?address=" + Address;
var result = new System.Net.WebClient().DownloadString(AddressURL);
dynamic data = JObject.Parse(result);
Lat.Text = data.status;
Run Code Online (Sandbox Code Playgroud)
这就是API生成的内容:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara County",
"short_name" : "Santa Clara County",
"types" : [ "administrative_area_level_2", …Run Code Online (Sandbox Code Playgroud) 我正在使用Twitter4J从他/她的个人资料中检索用户的位置.我有一组地理坐标使用此调用形成多边形边界(通常为4个或更多坐标):
// Status tweet
Place place = tweet.getPlace();
GeoLocation[][] box = place.getBoundingBoxCoordinates();
Run Code Online (Sandbox Code Playgroud)
有没有办法计算这个区域/多边形/边界的中心(或近中心,或至少包含一个点)?是否有Java API?
是否有来自此帖子的 Java代码的Java等价物:
var bounds = new google.maps.LatLngBounds();
bounds.extend(results[0].geometry.location);
var center = bounds.getCenter();
Run Code Online (Sandbox Code Playgroud) 我在R中有几个数据帧.第一个数据帧包含市场上一组lat和long坐标的计算凸包(由R中的chull提供).它看起来像这样:
MyGeo<- "Part of Chicago & Wisconsin"
Longitude <- c(-90.31914, -90.61911, -89.37842, -88.0988, -87.44875)
Latitude <- c(38.45781, 38.80097, 43.07961, 43.0624,41.49182)
dat <- data.frame(Longitude, Latitude, MyGeo)
Run Code Online (Sandbox Code Playgroud)
第二个是纬度和纵坐标的邮政编码(美国人口普查网站提供).它看起来像这样:
CensuseZip <- c("SomeZipCode1","SomeZipCode2","SomeZipCode3","SomeZipCode4","SomeZipCode5","SomeZipCode6","SomeZipCode7")
Longitude2 <- c(-131.470425,-133.457924,-131.693453,-87.64957,-87.99734,-87.895,-88.0228)
Latitude2 <- c(55.138352,56.239062,56.370538,41.87485,42.0086,42.04957,41.81055)
cen <- data.frame(Longitude2, Latitude2, CensuseZip)
Run Code Online (Sandbox Code Playgroud)
现在我相信第一个数据表为我提供了一个多边形或边框,我应该可以使用它来识别属于该边界的邮政编码.理想情况下,我想创建一个类似于下面的第三个数据表:
Longitude2 Latitude2 CensusZip MyGeo
-131.470425 55.138352 SomeZipCode1
-133.457924 56.239062 SomeZipCode2
-131.693453 56.370538 SomeZipCode3
-87.64957 41.87485 SomeZipCode4 Part of Chicago & Wisconsin
-87.99734 42.0086 SomeZipCode5 Part of Chicago & Wisconsin
-87.895 42.04957 SomeZipCode6 Part of Chicago & Wisconsin …Run Code Online (Sandbox Code Playgroud) geocoding ×10
coordinates ×2
google-maps ×2
javascript ×2
api ×1
c# ×1
d3.js ×1
geolocation ×1
geometry ×1
gmaps4rails ×1
iphone ×1
java ×1
json ×1
leaflet ×1
maps ×1
php ×1
polygon ×1
r ×1
reverse ×1
security ×1
twitter4j ×1
validation ×1