标签: geo

使用Python将Exif DMS转换为DD Geolocation

我使用以下代码来提取用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)

python exif geo python-imaging-library

5
推荐指数
1
解决办法
2826
查看次数

使用WHERE子句在距经度和纬度的距​​离范围内查找POI

我正在使用以下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)

mysql sql geometry gps geo

5
推荐指数
1
解决办法
1987
查看次数

Soundcloud api:Geo Tag搜索无法正常工作

地理搜索标签似乎无法正常工作.我有一个已经运行了数月但没有任何变化的应用程序.它最近破了,经过故障排除我发现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的人可以发表评论吗?

tags geo soundcloud

5
推荐指数
0
解决办法
356
查看次数

Dymaxion/Airocean(二十面体)地图投影的ggplot

我认为R. Buckminster Fuller的Dymaxion地图是有史以来设计的最美丽的地图投影之一:

来自维基百科的dymaxion地图

我正在使用mapproj中的整洁投影,这与ggplot很有效,但看起来并没有任何预测.有一个很好的ggplot方法来做到这一点?

gis r projection geo ggplot2

5
推荐指数
1
解决办法
1358
查看次数

转换区域/细分(从FIPS到ISO 3166,反之亦然)

我有两个数据库,一个是国家和分区(州/地区),另一个是城市.

问题是,他们使用不同的规范.

国家/地区分部提供:ISO 3166-2代码(数字和字符)和城市细分使用FIPS(仅限数字).

我在哪里或如何将它们匹配在一起?

有没有"Mappers?

德国示例:

细分:勃兰登堡

  • ISO 3166-2 - > BB
  • FIPS - > 11

示例数据集:

国家/细分:

{"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)

ruby ruby-on-rails country-codes geo region

5
推荐指数
1
解决办法
655
查看次数

从外部访问Leaflet.js GeoJson功能

我想与来自外部L.领域的传单动力地图的GeoJson叠加(多边形)进行交互,但我似乎无法访问由其创建的对象L..

互动包括:

  • 的getBounds(我的功能)
  • fitBounds(我的功能)
  • setStyle等

我可以看到Leaflet暴露了L.GeoJSON.getFeature(),但我似乎无法从中挤出任何东西.没有文件,检查员似乎建议不采取论据......:\

这只是为了未来的发展吗?

在此输入图像描述

javascript dictionary geo leaflet

5
推荐指数
1
解决办法
4373
查看次数

使用底图获取城市地图的最佳方法?

我正在尝试使用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获取旧金山的地图呢?

python gis google-maps matplotlib geo

5
推荐指数
1
解决办法
6191
查看次数

简化D3js的SVG路径生成的字符串

我正在尝试使用惊人的D3js geo模块优化一点我生成的SVG.

我用作SVG路径d3.geo.pathd属性生成器:

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函数吐出之后调整字符串是不正确的,并且在路径本身或投影的某个点指定舍入将是很好的...

javascript svg projection geo d3.js

5
推荐指数
1
解决办法
590
查看次数

SQL Server:地理搜索性能 - 查询最近的商店

我有一个性能查询最近的商店:

我们有一张表格,其中包含一个国家/地区约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)

sql-server indexing geography geo sqlperformance

5
推荐指数
1
解决办法
510
查看次数

坐标的多边形

我有一个data.framelats和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 列的对象的最简单方法是什么?

r geo r-sf

5
推荐指数
1
解决办法
2046
查看次数