谷歌地图对地图的隐式定位“破碎了吗?

时间:2016-01-07 11:02:44

标签: google-maps lua latex

作为LaTeX软件包getmap的开发人员,我收到了一个错误报告,我在文档中或Bitbucket上的一些示例不再起作用。

调查一下,我了解至少对于德国柏林市来说,“地图的隐式定位”似乎存在问题。其他例子确实有用。

对于那些有LaTeX发行版的人:

\documentclass{article}
\usepackage[overwrite]{getmap}
\usepackage{libertine}
\usepackage{graphicx}
\begin{document}
\section{working}
\subsection{Google Static Maps API Example}
\getmap[
    file=api,mode=gm,
    markers={&markers=size:mid|label:S|color:blue|62.107733,-145.541936%
    &markers=color:green|Delta Junction,AK%
    &markers=label:C|color:yellow|Tok,AK}
]{}
\includegraphics[width=\linewidth]{api}

\subsection{Munich, Germany}
\getmap[
    file=muc,mode=gm,
    markers={&markers=size:mid|label:S|color:blue|Stachus, München%
    &markers=label:M|color:yellow|Marienplatz, München}
]{}
\includegraphics[width=\linewidth]{muc}

\section{not working}
\subsection{Berlin (markers)}

\getmap[
    file=bmus1,mode=gm,
    markers={&markers=size:mid|label:B|color:green|Bode Museum, Berlin%
    &markers=label:P|color:green|Pergamonmuseum, Berlin%
    &markers=label:N|color:blue|Neues Museum, Berlin}
]{}
\includegraphics[width=\linewidth]{bmus1}

\subsection{Berlin (markers,visible)}
\getmap[file=bmus2,mode=gm,
markers={&markers=size:mid|label:B|color:green|Bode Museum, Berlin%
    &markers=label:P|color:green|Pergamonmuseum, Berlin%
    &markers=label:N|color:blue|Neues Museum, Berlin},%
visible={Brandenburger Tor, Berlin|Reichstagsufer 1, Berlin}]{}
\includegraphics[width=10cm]{bmus2} 
\end{document} 

getmap使用Lua脚本下载静态地图,因此您必须使用-shell-escape开关启用\write18功能!

pdflatex -shell-escape test.tex

对于给定的示例,它创建并下载以下URL和图像:

http://maps.googleapis.com/maps/api/staticmap?&size=600x400&markers=size%3amid%7clabel%3aS%7ccolor%3ablue%7c62%2e107733%2c%2d145%2e541936&markers=color%3agreen%7cDelta%20Junction%2cAK&markers=label%3aC%7ccolor%3ayellow%7cTok%2cAK&maptype=roadmap&scale=1&format=png&language=en&sensor=false

google static image api example

http://maps.googleapis.com/maps/api/staticmap?&size=600x400&markers=size%3amid%7clabel%3aS%7ccolor%3ablue%7cStachus%2c%20M%c3%bcnchen&markers=label%3aM%7ccolor%3ayellow%7cMarienplatz%2c%20M%c3%bcnchen&maptype=roadmap&scale=1&format=png&language=en&sensor=false

munich (markers)

http://maps.googleapis.com/maps/api/staticmap?&size=600x400&markers=size%3amid%7clabel%3aB%7ccolor%3agreen%7cBode%20Museum%2c%20Berlin&markers=label%3aP%7ccolor%3agreen%7cPergamonmuseum%2c%20Berlin&markers=label%3aN%7ccolor%3ablue%7cNeues%20Museum%2c%20Berlin&maptype=roadmap&scale=1&format=png&language=en&sensor=false

berlin example (markers)

http://maps.googleapis.com/maps/api/staticmap?&size=600x400&markers=size%3amid%7clabel%3aB%7ccolor%3agreen%7cBode%20Museum%2c%20Berlin&markers=label%3aP%7ccolor%3agreen%7cPergamonmuseum%2c%20Berlin&markers=label%3aN%7ccolor%3ablue%7cNeues%20Museum%2c%20Berlin&maptype=roadmap&scale=1&format=png&visible=Brandenburger%20Tor%2c%20Berlin%7cReichstagsufer%201%2c%20Berlin&language=en&sensor=false

berlin example (markers,visible)

以下是生成的PDF

正如你所看到的,隐式定位不再适用于柏林(只有大柏林地区的图像) - 它过去曾做过(见Bitbucket wiki) - 但确实适用于其他领域!你遇到过类似的问题吗?

我在这里为Google男孩发布了这个问题。他们说这是一个合适的沟通渠道。所以,bug ??? ; - )

修改

根据Molle博士的建议,我得到了预期的结果:

museumsinsel

这是几个月前的结果:

museumsinsel; a few month back

很明显,柏林POI的地理编码在过去几个月内得到了“更新”,而不是更好的一面。

1 个答案:

答案 0 :(得分:2)

您不传递地址,而是传递位置名称,部分可能无法正确地进行地理编码(至少没有给出所需的结果)。请参阅:Neues Museum,BerlinBode Museum,Berlin

特别是当您查看Neues Museum,Berlin的结果时,您会看到地理编码器返回柏林而不是特定位置。

因为看起来静态地图使用地理编码位置的视口(它是链接示例中的蓝色矩形)来计算地图的区域,这就是使用标记Neues Museum, Berlin时获得的结果。包含柏林视口的地图(这是经过地理编码的)

使用地址的示例:( B ode博物馆:Am Kupfergraben 3, N eues博物馆:Bodestraße2)

http://maps.googleapis.com/maps/api/staticmap?&size=600x400&markers=size%3amid|label%3aB|color%3agreen|Am%20Kupfergraben%203%2c%20Berlin&markers=label%3aP|color%3agreen|Pergamonmuseum%2c%20Berlin&markers=label%3aN|color%3ablue|Bodestra%C3%9Fe%202%2c%20Berlin&maptype=roadmap&scale=1&format=png&visible=Brandenburger%20Tor%2c%20Berlin|Reichstagsufer%201%2c%20Berlin&language=en&sensor=false

enter image description here