文件交换

图像缩略图

get_google_map

版本1.4.0.0(7.62 KB)通过 瓦尔施密特
检索使用静态谷歌地图API的命令行谷歌地图。

52个下载

更新2016年3月25日

查看许可证

该功能get_google_map.m使用谷歌地图API(https://developers.google.com/maps/documentation/static-maps/)来检索图像的中心和所需的缩放级别(默认为15)的谷歌给出的坐标的谷歌地图的图像。的图像被返回作为栅格阵列和颜色映射。
此外,X的估计值和Y坐标向量在UTM坐标形式返回,方便的从内部MATLAB地图上的其它信息,方便绘图。
所需的高度和图像的宽度(以像素为单位)可以被指定为以及“地图类型”(路线图,移动,卫星,地形,混合,绘图者-路线图,绘图者杂交中的一个)和至多50谷歌地图标记。对于每个标记物之一可以指定的位置,大小,颜色以及可选的标签。
默认值:放大15,地图类型= '卫星',高度= 640,宽度= 640
人们可以利用谷歌地图API没有每天查询数量有限的关键。为了利用谷歌地图API高达每天25,000个查询,必须得到谷歌地图API密钥,可以免费从谷歌。该密钥可以在这里获得:https://developers.google.com/maps/documentation/static-maps/(点击“一键搞定”)

注意,关键的要求放置限制此功能的便携性,为关键,因此该功能必须局限于一个域名,因此(通常)的物理位置。无 - 无它仍然是一个地图上绘制快速的数据非常方便的功能。

下面的代码产生附截图:

[XX YY中号Mcolor] = get_google_map(43.06374,-70.703993);
于imagesc(XX,YY,M);遮光平;颜色表(Mcolor)
xlabel( '东进UTM')
ylabel( '的北进UTM')
标题(“入口朴次茅斯港”)

已知的问题:
1)X和Y的坐标估计向量是仅仅是一个猜测的算法,用于从图像大小确定这些值和缩放水平。该算法通过试验和误差来确定(作为API没有提供方法来查询的图像的空间范围),因此,可能会产生一些位置差的结果。在朴次茅斯港,NH附近所产生的图像是地理参考至约+/-3米。

2)由于在Mac平台上MATLAB的渲染性能差,我的经验是,地图绘制在上面产生白光的差距,其原因和解决方法是未知的例子。

引用作为

瓦尔施密特(2020年)。get_google_map(//www.tianjin-qmedu.com/matlabcentral/fileexchange/24113-get_google_map),MATLAB中央文件交换。检索

评论和评分(19

朱雷

在Matlab 2017b不工作

使用readContentFromWebService误差(线42)
太多的输出参数。

误差在webread(线125)
[varargout {1:nargout}] = readContentFromWebService(连接,选项);

误差在get_google_map(线182)
[M Mcolor] = webread(URL);

什么是varargin?

Pablitovich

[R工作室创建图像的一个更好的渲染。但是,如果将图像保存为.jpg或.png?

山宁宝

良好的工作!
我建议使用,以获得一个井字形到的地图添加其他地理空间对象(例如点等)作如下修改:

1 \在get_google_map.m提议的变更:设置北距方向,因为它应该是
%YY = 0:DX:W;%## <---原始
YY = W:-dx:0; ##%<---改性

2. \ Run中的新功能:
迟= 40.9678435;
孤= 14.0168085;
[XX,YY,M Mcolor] = get_google_map(晚,独行, '缩放',18);

3. \地块使用图像功能以及,加入geopoints(北 - >南及西 - >东)的主图
人物,CLF
图像(XX,YY,M);
遮光平;颜色表(Mcolor)
xlabel( '东进UTM')
ylabel( '的北进UTM')
AX = GCA;
ax.YDir = '正常';
Xpoints = XX(地板(端/ 4):地板(端/ 4 * 3));
ypoints中= YY(地板(端/ 4):地板(端/ 4 * 3));
坚持,稍等
散射(Xpoints,ypoints中,如图6所示, '填充');
拖延
标题(“现在点和其他地理空间对象可以正确绘制!”)

它工作正常。我对参数“M”短的问题,如果我打开一个卫星地图。返回矩阵M与从1-255的范围内的数字。你有什么想法什么呢,这些数字是什么意思?
相应地,“Mcolor”有256个色阶。我不是很确定,如果在M对应于“Mcolor”色彩层次的数字。

韦伯

Subhraneil达斯

每当我尝试运行此功能,它说
500最大递归达到上限。使用集合(0, 'RecursionLimit',N)来改变极限。要知道,超越您的
可用堆栈空间会崩溃MATLAB和/或您的计算机。

错误get_google_map
我试图改变递归的限制,但它没有工作或者说编程的,坠毁对于n> = 799。
它真急,我得到这个代码的工作。有人可以请给一个解决方案吗?

朱襄阳

如何删除在地图上的标签?如道路的名称...

运行R2016a并收到此错误:

使用readContentFromWebService误差(线42)
太多的输出参数。

误差在webread(线122)
[varargout {1:nargout}] = readContentFromWebService(连接,选项);

误差在get_google_map(线182)
[M Mcolor] = webread(URL);

bigseat

使用webread误差(线112)
的“maps.googleapis.com”的IP地址无法确定。

怎么在这种情况下怎么办?

马丁

谢谢,这是一个伟大的功能!
我能够通过调整它不是写图像文件,但使用webread()函数直接加载图像以提高性能 - 也许你要考虑这一点。- 马丁

你好!感谢我的同事切扎尔Stanciu我们(主要是他)解决了这个问题。至于句柄数字是现在的对象,它需要的axHandle改为双 - >“双(axHandle)”每次被调用的脚本。问候

你好,如果与Matlab的2014B使用,由于图形把手变化脚本给错误。有任何您的经验?谢谢

我收到以下错误........
请帮我解决这个问题..................
################
???使用==> imread在328错误
无法确定的文件格式。

错误的==>在163 get_google_map
[M Mcolor] = imread(文件名);

误差在==>未命名3
[XX YY中号Mcolor] = get_google_map(43.06374,-70.703993);

我们

一旦用户设置环境

- 拿到钥匙
- 获取DEG2UTM

它工作得很好大部分的道具/ VAL组合

两个念头

在功能上没有必要FLIPUD(M)...否则,用户必须将其翻转回来

于imagesc(XX,YY,flipud(M));
颜色表(Mcolor);
轴图像;

这似乎更快/更好的方式来显示相比,所提出的SURF地图(...)

道具应该是不区分大小写?

我们

更新

1.4.0.0

采用了马丁的建议(见注释)使用webread()调用,而不是一个临时文件。还重组了码一下,以便更容易理解。

1.3.0.0

通过谷歌地图API密钥从plot_google_map处理()。更新使用新的谷歌地图API。使用用于校准的图像尺寸的新方法(需要的信号处理工具箱)。

1.2.0.0

没有功能性的改变。

1.1.0.0

我已经采取了“我们”所提出的建议,从代码,以便与于imagesc产生的图像绘制正确地移除flipud,使选项不区分大小写。

MATLAB版本兼容性
创建了R2009a
与任何版本兼容
平台兼容性
视窗 苹果系统 Linux的