我想计算大约之间的距离.100,000种不同的邮政编码.我知道包中的mapdist功能ggmap
mapdist 完美的工作:
library(ggmap)
mapdist('Washington', 'New York', mode = 'driving')
# from to m km miles seconds minutes hours
# 1 Washington New York 366284 366.284 227.6089 13997 233.2833 3.888056
mapdist('20001', '10001', mode = 'driving')
# from to m km miles seconds minutes hours
# 1 20001 10001 363119 363.119 225.6421 13713 228.55 3.809167
Run Code Online (Sandbox Code Playgroud)
但是,mapdist依赖于Google地理编码API,该API 每天的查询限制为2,500个地理定位请求.
您是否知道使用具有更高请求限制的其他服务(例如诺基亚地图或必应)来计算两点之间距离的替代r代码?
我想对Oracle和SQL Server中的空间索引进行性能测试.我想将它包含在我的科学硕士课程中.发布这种结果是否反对dbms的许可?
也许有人已经遇到过那种问题?我并不热衷于挖掘无聊的许可证;).
几天来,我一直在敲打这个.我有一个非常简单的查询,我试图在C#中运行,它在shell中看起来像这样.
db.runCommand({geoNear: "items", near: {type: "Point", coordinates : [-111.283344899999, 47.4941836]}, spherical : true, distanceMultiplier: 3963.2, maxDistance : 25});
Run Code Online (Sandbox Code Playgroud)
我的收藏看起来像这样
{
"_id" : ObjectId(),
"Title" : "arst",
"Description" : "<p>arst</p>",
"Date" : new Date("11/29/2015 09:28:15"),
"Location" : {
"type" : "Point",
"Coordinates" : [-111.28334489999998, 47.4941836]
},
"Zip" : "59405"
}
Run Code Online (Sandbox Code Playgroud)
根据MongoDB C#API文档中的文档,MongoDB.Driver.Builders.Query对象现在已成为遗产.所以,当我做这样的事情
var point = new GeoJson2DGeographicCoordinates(double.Parse(longitude), double.Parse(latitude)) ;
var query = Query<Item>.Near(x => x.Location, new GeoJsonPoint<GeoJson2DGeographicCoordinates>(point), distance, true);
var result = collection.Find(query);
Run Code Online (Sandbox Code Playgroud)
编译器抱怨它无法从IMongoQuery转换为FilterDefinition.这告诉我新的2.1库不支持旧的Query <>构建器.但是对于我的生活,我在api文档中找不到任何引用替换的文档?
有没有人能指出我在2.1 C#驱动程序中执行这个简单的地理空间查询的正确方向?我很难过.
此外,我确实在集合上创建了一个2dsphere索引,如果我没有shell命令不起作用.这是索引输出.
{ …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Google地图mashup并使用SQL 2008.
我将在地球上拥有大量的点,并希望在SQL中对它们执行各种计算 - 例如选择特定多边形中包含的所有点,或选择距离XY 10km内的所有点.
我之前从未使用过SQL空间功能.我应该使用geography或geometry数据类型吗?
如何从python获取已安装的GDAL/OGR版本?
我知道该gdal-config程序,目前正在使用以下内容:
In [3]: import commands
In [4]: commands.getoutput('gdal-config --version')
Out[4]: '1.7.2'
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑有一种方法可以使用python API本身.任何骰子?
我跟随Daniel Azuma关于使用rails进行地理空间分析的讨论,但每当我rake db:migrate在第二个项目中运行时,我都遇到了困难.
我的设置细节如下:我使用Postgres.app运行Postgresql,它给出了Postgres版本9.1.3和PostGIS 2.0.0版本.我遇到了database.yml文件的一些问题,并运行了迁移.(我添加了相关的宝石,并在application.rb中要求他们的信息)
我的database.yml文件如下所示:
development:
adapter: postgis
postgis_extension: true
host: localhost
encoding: unicode
database: my_app_development
pool: 5
username: my_app
password:
Run Code Online (Sandbox Code Playgroud)
如果我添加以下行,schema_search_path: "public,postgis"我得到:
rake aborted!
PG::Error: ERROR: schema "postgis" does not exist
: SET search_path TO public,postgis
Run Code Online (Sandbox Code Playgroud)
如果我删除该行,当我尝试迁移数据库时收到以下错误:
rake aborted!
PG::Error: ERROR: relation "geometry_columns" does not exist
LINE 1: SELECT * FROM geometry_columns WHERE f_table_name='schema_mi... ^
: SELECT * FROM geometry_columns WHERE f_table_name='schema_migrations'
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何解决这些问题?
看起来mongodb为地理空间查询提供了两个类似的功能 - $near和$geoNear.根据mongo文档
geoNear命令提供$ near运算符的替代方法.除了$ near的功能外,geoNear还会返回其他诊断信息.
它看起来像geoNear提供了near功能的超集.例如,near似乎只返回最近的100个文档,而geoNear允许您指定最大值.是否有理由使用near而不是geoNear?一个比另一个更有效吗?
我需要使用Bing Map服务,EF 5和SQL Server 2008对大量地址进行地理编码.我在SQL中使用地理数据类型,它转换为EF的DbGeography类型.
当我创建一个DbGeography对象时,就像这样
string point = string.Format("POINT({0} {1})",address.Longitude,address.Latitude);
address.Location = System.Data.Spatial.DbGeography.PointFromText(point, 4326);
Run Code Online (Sandbox Code Playgroud)
第二个参数调用"coordinateSystemId".究竟是什么?很多我看到用4326我是新来的空间数据,但我猜有一组明确的坐标系的例子吗?我似乎无法找到一个定义.
我正在研究一个需要进行地理空间过滤的搜索查询(即过滤掉一定半径以外的所有元素).我们将PostgreSQL和ElasticSearch作为我们基础架构的一部分,我正在评估两者中的哪一个使用.
我不是要求"哪个更好",但在易于实现,性能,可扩展性等方面,客观的优缺点列表会有所帮助.
所以这是我的设置:
我有一张桌子如:
Id, Lat, Long, GeoPoint, GeomPoint
两个GeoPoint(地理)和GeomPoint(几何)设置为SRID 4326
我有以下查询:
DECLARE @radiiCollection TABLE
( [ID] INT IDENTITY(1, 1) PRIMARY KEY,
[Radius] GEOMETRY,
[RefPoint] GEOMETRY,
[RefAddr] VARCHAR(255),
[MinLat] VARCHAR(255),
[MaxLat] VARCHAR(255),
[MinLng] VARCHAR(255),
[MaxLng] VARCHAR(255))
DECLARE @point GEOMETRY = geometry::Point(-111.84493459999999, 33.3902569, 4326)
DECLARE @gpoint GEOGRAPHY = geography::Point(33.3902569, -111.84493459999999, 4326);
INSERT INTO @radiicollection
(radius,
refpoint,
refaddr,
maxlat,
maxlng,
minlat,
minlng)
VALUES ( @point.MakeValid().STBuffer(16093.40),
@point,
'10 miles of 85210',
33.51734689767781,
-111.6923852740045,
33.26298081643247,
-111.99703818130439 )
SELECT
GeomPoint,
GeoPoint
INTO #temp …Run Code Online (Sandbox Code Playgroud) geospatial ×10
mongodb ×2
postgis ×2
postgresql ×2
spatial ×2
sql-server ×2
.net ×1
c# ×1
database ×1
gdal ×1
geography ×1
geolocation ×1
geometry ×1
ggmap ×1
gis ×1
ogr ×1
oracle ×1
performance ×1
python ×1
r ×1
sql ×1