我使用 Google 提供的简单 URL 来查找邮政编码。
http://maps.googleapis.com/maps/api/geocode/json?address=90210&sensor=true
此 URL 将返回全世界的结果,但如何将这些结果限制为仅限美国?我查了一下,但找不到任何东西。当可能有办法添加到 URL 并获取以下内容时,我不想编写过多的代码来确保不存在任何美国地址:
{
"results" : [],
"status" : "ZERO_RESULTS"
}
Run Code Online (Sandbox Code Playgroud)
如果根本没有结果,这就是 API 返回的内容。容易多了。
我正在尝试进行查询,在其中可以找到 SQL 数据库中给定经度和纬度点(比方说 50 英里)内的所有位置。
我填充了一些帖子,在帖子表中我有两列,用于在创建帖子时存储经度和纬度。该表的外观如下:
我浏览了许多如何尝试实现这一点的示例,但似乎它们不起作用。通过研究我知道 ASP.NET Core 不支持DbGeography,其他文章也已经过时了。
找到这篇文章,但它使用了DbGeography,所以不起作用。
在 GitHub 上找到了这个:我只是不知道这是否可行。
仅供参考,这就是我的 Post 模型的外观:
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public double Lat { get; set; }
public double Lng { get; set; }
public DateTime Created { get; set; }
public Category Category { get; set; }
public int CategoryId { get; set; }
// Other …Run Code Online (Sandbox Code Playgroud) 我正在使用https://randomuser.me/生成一些随机用户数据进行测试。我想对提供附加真实城市/州/国家信息的纬度和经度进行地理编码,而不是 RandomUser 提供的完全虚假的信息。然而,这些物体的许多实际纬度/经度值结果都在海洋的中间。
是否有 API 或其他方法可以让我获得始终在陆地上的随机坐标?我见过这个:随机地理坐标(在陆地上,避开海洋)但是肯定有一些更有效的方法,而不是通过不断的地理编码猜测和检查直到找到一个有效的方法,对吧?
我正在尝试使用google-maps-services javascript 库。我希望从街道地址获取(lat,lng)。出于测试目的,我正在运行一个可调度的 firebase 函数并从那里调用库函数。但是,只有我的错误路径被执行。以下是我正在使用的环境详细信息和代码片段
运行一个从地理编码 API 请求 (lat, lng) 的异步函数。函数体(在index.js内部)如下
async function getDriverLocationNearAddress(streetAddress){
const geocodingClient = new Client({});
let params = {
address: streetAddress,
components: 'country:US',
key: API_KEY_GEOCODING
};
console.log('retrieving lat, lng for ' + streetAddress);
return geocodingClient.geocode(params)
.then((response)=>{
console.log('status: ' + response.data.status);
console.log(response.data.results[0].geometry.location.lat);
console.log(response.data.results[0].geometry.location.lng);
return response;
})
.catch((error)=>{
console.log('error retrieving geocoded results');
});
}
Run Code Online (Sandbox Code Playgroud)
已执行以下初始化
API_KEY_GEOCODING='*******************************'; // key not shown
const Client = require("@googlemaps/google-maps-services-js").Client;
Run Code Online (Sandbox Code Playgroud)
我每 1 分钟使用调度程序 API …
我想使用react-leaflet并在其顶部添加一个地理编码器字段。我发现leaflet-control-geocoder这看起来很棒,但没有反应包装器可以将其与反应传单一起使用。有人做过这个并且可以分享一个沙箱吗?或者也许它存在于 GitHub 上,但我没有使用正确的关键字?
感谢您的帮助,最诚挚的问候
我想生成美国(包括夏威夷和阿拉斯加)的一组随机纬度和经度坐标。我尝试使用国家气象局 ( https://www.weather.gov/gis/USstates )的 shapefile,但它在海洋中央生成点。这样做的最佳方法是什么?我考虑过在美国内陆定义自己的多边形,但这会排除某些州。我\xe2\x80\x99也看到了其他类似的问题,他们使用了美国城市的CSV列表,但我\xe2\x80\x99d宁愿它是完全随机的。
\n我需要过滤近地点的地理编码到一个位置.例如,我想过滤餐馆地理编码列表,以识别距离我当前位置10英里范围内的餐馆.
有人能指出我将一个距离转换为纬度和经度增量的函数吗?例如:
class GeoCode(object):
"""Simple class to store geocode as lat, lng attributes."""
def __init__(self, lat=0, lng=0, tag=None):
self.lat = lat
self.lng = lng
self.tag = None
def distance_to_deltas(geocode, max_distance):
"""Given a geocode and a distance, provides dlat, dlng
such that
|geocode.lat - dlat| <= max_distance
|geocode.lng - dlng| <= max_distance
"""
# implementation
# uses inverse Haversine, or other function?
return dlat, dlng
Run Code Online (Sandbox Code Playgroud)
注意:我使用的是supremum规范的距离.
好的,这是我的问题,我将放一张图片来说明。

我需要用户绘制一些多边形,以表示覆盖区域。
多边形需要具有固定数量的点(顶点),因为它稍后会进入处理算法,并且如果多边形可以包含很多点,那将非常慢。
无论如何,在我的示例中,我们坚持使用六边形(6点)。
用户需要能够拖动多边形并对其进行修改,但不能更改点数。
我尝试设置editable: true多边形的选项,效果很好,但它给了我如图所示的情况。它为每个点创建一个手柄,并在每个点之间的中间创建另一个手柄(半透明)。现在,如果用户移动该半透明点,它将在多边形上添加另一个点(顶点),并在新创建的线的中间添加两个句柄。这给了我们7点多边形。
最好的选择是删除那些半透明的手柄,以便用户只能拖动多边形点,这样他就不会影响点的总数。
我可以使用Google Maps的可编辑选项来实现吗?
我试图获得两个不同值的纬度和经度值.这些是在属性start和end我的里程模型中设置的.
geocoded_by :end, :latitude => :latitude, :longitude => :longitude
geocoded_by :start, :latitude => :start_lat, :longitude => :start_lon
Run Code Online (Sandbox Code Playgroud)
我的里程模型中有以下属性:
start
start_lat
start_long
end
latitude
longitude
Run Code Online (Sandbox Code Playgroud)
根据geocoded_by前程万里(Mileage)模型顶部的哪一行,只对其中一个属性进行地理编码.有没有办法让地理编码器宝石处理这两个属性?
我试图使用shapefile识别每组lat/lon坐标的邮政编码.
Lat Lon数据摘自:https://data.cityofchicago.org/Public-Safety/Crimes-2017/d62x-nvdr(Crimes _-_ 2001_to_present.csv)
Shapefile:https: //www2.census.gov/geo/tiger/PREVGENZ/zt/z500shp/zt17_d00.shp(伊利诺伊州的邮政编码定义)
library(rgeos)
library(maptools)
ccs<-read.csv("Crimes_-_2001_to_present.csv")
zip.map <- readOGR("zt17_d00.shp")
latlon<-ccs[,c(20,21)]
str(latlon)
'data.frame': 6411517 obs. of 2 variables:
$ Latitude : num 42 41.7 41.9 41.8 42 ...
$ Longitude: num -87.7 -87.6 -87.7 -87.6 -87.7 ...
coordinates(latlon) = ~Longitude+Latitude
write.csv(cbind(latlon,over(zip.map,latlon)),"zip.match.csv")
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
(函数(classes,fdef,mtable)中的错误:无法为签名'"SpatialPolygonsDataFrame","data.frame"找到函数'over'的继承方法
我错过了什么?任何帮助表示赞赏!
geocoding ×10
javascript ×4
google-maps ×2
python ×2
shapefile ×2
asp.net ×1
c# ×1
coordinates ×1
firebase ×1
geospatial ×1
leaflet ×1
location ×1
maps ×1
nodes ×1
r ×1
random ×1
reactjs ×1