有哪些地理编码/路由服务可以在Google App Engine上运行?(除Google Maps API外)
如何绘制表示地球平面地图上2点之间最短距离的曲线?
当然,线不是直线,因为地球是弯曲的.(例如,两个机场之间的最短距离是弯曲的.)
编辑:谢谢所有答案的家伙 - 抱歉,我选择解决方案的速度很慢:/
所以,Linq并不支持Geography
数据类型,它在可爱的"拖动表到Linq设计界面"开发模型上投入了大量的工具.
有什么方法可以扩展Linq以使用Geography数据类型?或者,我是否需要在需要使用Geography列时构建一个全新的数据层和查询集?
我已经被困在这几天了,如果可能的话就无法解决.
地球表面可以有一个纬度和经度的最大长度(以公里或英里为单位 - 但请注明)是多少?
我不确定我是否足够清楚,让我重新说明一下.众所周知,地球不是一个完美的圆,赤道(或厄瓜多尔)纬度/经度的1.0变化可能意味着一个距离,而两极的相同变化可能意味着另一个完全不同的距离.
我正在尝试缩减数据库返回的结果数(在本例中为MySQL),这样我就可以使用Great Circle公式计算几个点之间的距离.我没有选择所有点然后单独计算它们,而是选择纬度/经度边界内的坐标,例如:
SELECT * FROM poi
WHERE latitude >= 75 AND latitude <= 80
AND longitude >= 75 AND longitude <= 80;
Run Code Online (Sandbox Code Playgroud)
PS:已经很晚了,我觉得我的英语没有像我预期的那样出现,如果有什么你无法理解请说出来,我会根据需要修理/改进它,谢谢.
我需要使用openstreet地图或谷歌地图检索特定国家/地区的所有城市名称.有没有可用的API?
或者有没有其他方法来获取这个世界地理数据?
我搜索了解释和算法如何计算地球的多边形表面积.我发现了这个,这
让我们说我已经得到了凸壳
[56.992666,24.126051], [58.00282,25.930147], [58.787955,25.565078], [59.4997,24.861427], [59.463678,24.711365], [59.395767,24.599837], [56.992666,24.126051]
从第二个链接第一个答案使用Python库,即使我们假设地球是球体(我是对的),第二个答案方法也不会给出相当精确的区域?如果我们假设地球是球体,我可以采取什么方法来计算面积(更便宜)?
另外,我已经查找了不同的库(geotools.org等),但在他们的文档中没有找到有关区域计算的信息.
我有这个SQL命令,该命令GEOGRAPHY
为空间数据创建一个带有-type列的表,该表用于存储纬度/经度对(点)。如何为该列设置默认值?例如,点(0,0)?
CREATE TABLE [dbo].[StationLocations] (
[Id] [int] NOT NULL,
[StationId] [int] NOT NULL,
[Position] [Geography],
CONSTRAINT [PKStationLocations] PRIMARY KEY CLUSTERED ([Id]))
Run Code Online (Sandbox Code Playgroud) 我们在MapInfo表中存储了大量的地理位置,我们现在希望将它们存储在SQL Server中.我们编写了C#实用程序来从MapInfo文件中读取地理位置并将它们导入SQL服务器.在大多数情况下,这是运作良好.然而,在使用我们内部开发的工具进行许多清理过程之后,我们仍然留下了大量被认为无效的地理位置SqlGeography.STIsValid()
.
对于大多数或所有这些情况,.NET方法SqlGeography.MakeValid()
都能够创建有效的地理实例.但是,关于这方面的文档非常糟糕,我们不满足于简单地接受修改MakeValid
而不理解地理被视为无效的原因以及MakeValid
纠正它们的原因.
通过调用IsValidDetailed
,我们得到一个没有详细记录的神秘错误消息.对于许多情况,返回的字符串IsValidDetailed
看起来像这样:
24404:无效,因为多边形环(1)与自身或其他环相交.问题出现在几何集合的条目(19)中
我们尝试导入的所有地理对象都是多边形.通过解析此错误消息,我们尝试识别这些多边形中的问题多边形和环.但是,我们发现索引似乎与实际有问题的多边形/环实际不匹配.在许多情况下,索引超出了输入几何的数组范围.
有没有更好的方法来确定几何/地理对象被视为无效的具体原因,并确定哪些多边形,环或点有问题?
我有一个性能查询最近的商店:
我们有一张表格,其中包含一个国家/地区约50,000条记录(商店/销售点位置).
每条记录都有location
"地理"类型的列
[LOCATION_geo] [geography]
Run Code Online (Sandbox Code Playgroud)
同样为了性能,我使用这种语法在该位置列上创建了一个SPATIAL INDEX
CREATE SPATIAL INDEX [LOCATION_geoIndex]
ON [dbo].[StoreLocations] ([LOCATION_geo])
USING GEOGRAPHY_GRID
WITH (
GRIDS =(LEVEL_1 = MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM),
CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
我有一个存储过程来返回用户当前位置最近的1000商店.
USE [CompanyDB]
GO
SET STATISTICS TIME ON;
GO
declare @point geography;
set @point = geography::Point(49.2471855, -123.1078987, 4326);
SELECT top (1000) [id]
,[Location_Name]
,[LOCATION_geo]from [MYDB].[dbo].[StoreLocations]
where [LOCATION_geo].STDistance(@point) <= 10000 …
Run Code Online (Sandbox Code Playgroud) 我可以用来获取城市人口的优质python API是什么?我尝试使用地址解析器,但无法正常工作-不知道为什么。
geocoder.population('San Francisco, California')
Run Code Online (Sandbox Code Playgroud)
退货
'module' object has no attribute 'population'
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决?
或者,是否可以为此使用其他Python API?
python geocoding geography google-geocoder google-geocoding-api
geography ×10
geo ×2
geocoding ×2
geometry ×2
math ×2
sql ×2
sql-server ×2
area ×1
c# ×1
geolocation ×1
geospatial ×1
gis ×1
google-maps ×1
indexing ×1
java ×1
linq-to-sql ×1
python ×1
spatial ×1