我使用以下代码来提取用iPhone拍摄的图像的地理位置:
from PIL import Image
from PIL.ExifTags import TAGS
def get_exif(fn):
ret = {}
i = Image.open(fn)
info = i._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret
a = get_exif('photo2.jpg')
print a
Run Code Online (Sandbox Code Playgroud)
这是我被退回的结果:
{
'YResolution': (4718592, 65536),
41986: 0,
41987: 0,
41990: 0,
'Make': 'Apple',
'Flash': 32,
'ResolutionUnit': 2,
'GPSInfo': {
1: 'N',
2: ((32, 1), (4571, 100), (0, 1)),
3: 'W',
4: ((117, 1), (878, 100), (0, 1)),
7: ((21, 1), (47, …Run Code Online (Sandbox Code Playgroud) 我正在使用以下sql代码找出最接近设定坐标的'ALL'poi,但我想找出特定的poi而不是所有的poi.当我尝试使用where子句时,我得到一个错误,它不起作用,这是我目前卡住的地方,因为我只使用一个表用于所有poi的所有坐标.
SET @orig_lat=55.4058;
SET @orig_lon=13.7907;
SET @dist=10;
SELECT
*,
3956 * 2 * ASIN(SQRT(POWER(SIN((@orig_lat -abs(latitude)) * pi()/180 / 2), 2)
+ COS(@orig_lat * pi()/180 ) * COS(abs(latitude) * pi()/180)
* POWER(SIN((@orig_lon - longitude) * pi()/180 / 2), 2) )) as distance
FROM geo_kulplex.sweden_bobo
HAVING distance < @dist
ORDER BY distance limit 10;
Run Code Online (Sandbox Code Playgroud) 地理搜索标签似乎无法正常工作.我有一个已经运行了数月但没有任何变化的应用程序.它最近破了,经过故障排除我发现geo标签搜索,无论是特定的还是外卡,都没有返回任何结果.
$(document).ready(function()
{ SC.initialize({ client_id: 'my id here'});
SC.get("/tracks", {limit: 200, tags: 'geo:lon=-118.*'}, SearchTracks);
});
var SearchTracks=function Search (tracks){
for (var key in tracks)
{console.log(tracks[key].title+" "+tracks[key].tag_list);
}
};
Run Code Online (Sandbox Code Playgroud)
当我使用geo的任何其他组合时会发生同样的情况:lat和geo:lon.来自Soundcloud的人可以发表评论吗?
我认为R. Buckminster Fuller的Dymaxion地图是有史以来设计的最美丽的地图投影之一:

我正在使用mapproj中的整洁投影,这与ggplot很有效,但看起来并没有任何预测.有一个很好的ggplot方法来做到这一点?
我有两个数据库,一个是国家和分区(州/地区),另一个是城市.
问题是,他们使用不同的规范.
国家/地区分部提供:ISO 3166-2代码(数字和字符)和城市细分使用FIPS(仅限数字).
我在哪里或如何将它们匹配在一起?
有没有"Mappers?
德国示例:
细分:勃兰登堡
示例数据集:
国家/细分:
{"alpha2"=>"DE",
"alpha3"=>"DEU",
"name"=>"Germany",
"names"=>["Germany", "Deutschland", "Allemagne", "Alemania", "???", "Duitsland"],
"number"=>"276",
"subdivisions" => {
"BB"=>{"name"=>"Brandenburg", "names"=>["Brandenbourg", "Brandenburgo"]},
"BE"=>{"name"=>"Berlin", "names"=>["Berlín"]},
"BW"=>{"name"=>"Baden-Württemberg", "names"=>["Baden-Württemberg", "Baden-Wurttemberg"]},
"BY"=>{"name"=>"Bayern", "names"=>["Bavière", "Bayern", "Bavaria"]},
"HB"=>{"name"=>"Bremen", "names"=>["Brème"]},
"HE"=>{"name"=>"Hessen", "names"=>["Hessen", "Hesse"]},
"HH"=>{"name"=>"Hamburg", "names"=>["Amburgo", "Hambourg", "Hamburgo"]},
"MV"=>{"name"=>"Mecklenburg-Vorpommern", "names"=>["Mecklenburg-Vorpommern"]},
"NI"=>{"name"=>"Niedersachsen", "names"=>["Niedersachsen"]},
"NW"=>{"name"=>"Nordrhein-Westfalen", "names"=>["Nordrhein-Westfalen", "Rhénanie-Westphalie"]},
"RP"=>{"name"=>"Rheinland-Pfalz", "names"=>["Rheinland-Pfalz", "Rhénanie-Palatinat"]},
"SH"=>{"name"=>"Schleswig-Holstein", "names"=>"Schleswig-Holstein"},
"SL"=>{"name"=>"Saarland", "names"=>"Saarland"},
"SN"=>{"name"=>"Sachsen", "names"=>["Sachsen"]},
"ST"=>{"name"=>"Sachsen-Anhalt", "names"=>"Sachsen-Anhalt"},
"TH"=>{"name"=>"Thüringen", "names"=>["Thüringen", "Thuringen"]}}}
{"alpha2"=>"AT",
"alpha3"=>"AUT",
"name"=>"Austria",
"names"=>["Austria", "Österreich", …Run Code Online (Sandbox Code Playgroud) 我想与来自外部L.领域的传单动力地图的GeoJson叠加(多边形)进行交互,但我似乎无法访问由其创建的对象L..
互动包括:
我可以看到Leaflet暴露了L.GeoJSON.getFeature(),但我似乎无法从中挤出任何东西.没有文件,检查员似乎建议不采取论据......:\
这只是为了未来的发展吗?

我正在尝试使用Basemap在python中显示城市的地图,例如旧金山。我尝试了以下方法:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# llcrnrlat,llcrnrlon,urcrnrlat,urcrnrlon
# are the lat/lon values of the lower left and upper right corners
# of the map.
# lat_ts is the latitude of true scale.
# resolution = 'c' means use crude resolution coastlines.
m = Basemap(projection='merc',llcrnrlat=37.79,urcrnrlat=37.81,\
llcrnrlon=-122.42,urcrnrlon=-122.4,lat_ts=20,resolution='c')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,91.,30.))
m.drawmeridians(np.arange(-180.,181.,60.))
m.drawmapboundary(fill_color='aqua')
plt.title("Mercator Projection")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,仅在地图应显示的位置显示蓝色。那么,如何使用python获取旧金山的地图呢?
我正在尝试使用惊人的D3js geo模块优化一点我生成的SVG.
我用作SVG路径d3.geo.path的d属性生成器:
path = d3.geo.path().projection(config.projection); // projection is initialized somewhere else
Run Code Online (Sandbox Code Playgroud)
然后用它来渲染这样的路径:
svg.selectAll(".country")
.data(countries)
.enter()
.insert("path", ".graticule")
.attr({
class: "country",
d: path
})
Run Code Online (Sandbox Code Playgroud)
我得到的路径字符串就像这样:
M713.601085,459.8780053259876L714.7443994399441,460.08170562468473L715.0310281028103,460.5903728431771L715.0310281028103...
Run Code Online (Sandbox Code Playgroud)
可以看出,有些数字非常长,有很多小数,并且在我当前的分辨率下并没有真正有用,这会堵塞DOM并使调试这些路径变得缓慢(还有很多,因为它是一个世界地图,吸引了很多国家).
所以我的第一个方法是创建这个pathSimplified包装器path:
// Path simplified: take some decimals out of the 'd' string
pathSimplified = function (d) {
return path(d).replace(/(\.\d{4})\d+/g, '$1');
};
Run Code Online (Sandbox Code Playgroud)
然后使用它而不是path:
//...
.attr({
class: "country",
d: pathSimplified
})
Run Code Online (Sandbox Code Playgroud)
这是有效的,现在我只获得路径字符串上每个值的4位小数.像这样:
M713.6010,459.8780L714.7443,460.0817L715.0310,460.5903L715.0310...
Run Code Online (Sandbox Code Playgroud)
我的问题是:它能以更好,更少的hackish方式完成吗?在D3js的path函数吐出之后调整字符串是不正确的,并且在路径本身或投影的某个点指定舍入将是很好的...
我有一个性能查询最近的商店:
我们有一张表格,其中包含一个国家/地区约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) 我有一个data.frame用lats和lngs来定义矩形框的边界,就像这样
geohash north_lat south_lat east_lng west_lng
1 gbsuv 48.69141 48.64746 -4.306641 -4.350586
2 gbsuy 48.69141 48.64746 -4.262695 -4.306641
Run Code Online (Sandbox Code Playgroud)
将此转换为sf包含POLYGONs 列的对象的最简单方法是什么?
geo ×10
gis ×2
javascript ×2
projection ×2
python ×2
r ×2
d3.js ×1
dictionary ×1
exif ×1
geography ×1
geometry ×1
ggplot2 ×1
google-maps ×1
gps ×1
indexing ×1
leaflet ×1
matplotlib ×1
mysql ×1
r-sf ×1
region ×1
ruby ×1
soundcloud ×1
sql ×1
sql-server ×1
svg ×1
tags ×1