1

Python で Google App Engine 上に構築されたサイトがあります。機能の 1 つは、Google の静的マップを使用して現在地を更新する機能です。Python コードが静的マップの URL を生成し、HTML テンプレートがそれを配置するだけです。画像が配置されるスペースは次のようになります。

<tr>
    <td colspan="4"><img border=0 src="{{img_url}}" /></td>
</tr>

...そして、画像 URL の生成方法は次のとおりです。

self.template_values['img_url'] = "http://maps.google.com/staticmap?center=%s,%s&zoom=%s&size=%s&markers=%s,%s,midreda" % (str(rs['lat']), str(rs['lng']), str(rs['zoom']), str(MAP_SIZE[0])+"x"+str(MAP_SIZE[1]), str(rs['lat']), str(rs['lng']))

rs[] dict は、Google マップ検索からの応答です。これにより、完全に有効な静的マップ URL が生成されます。

<tr>
    <td colspan="4"><img border=0 src="http://maps.google.com/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=52.955115,-1.149172,midreda" /></td>
</tr>

上の画像の URL は、「ノッティンガム、英国」で検索したものです。アドレスにアクセスすると、意図したとおりに、正しいサイズとすべてが表示されていることがわかります。ただし、このページ (spare-wheels.appspot.com/searchlocation で確認できますが、使用するには Facebook アカウントを接続する必要があります) では画像が表示されません。HTML ソースは問題ないように見えます。明らかなエンコーディングの問題などはありません。何が問題なのかわかりません。何か案は?

ありがとう

ベン

編集:少しテストした後、マップが機能することもありますが、ほとんどの場合は機能しないことがわかりました。機能すると、通常は更新後に機能しなくなります

4

1 に答える 1

3

Google Maps API v1 は廃止されました。API キーが不要になった無料の静的マップの使用に関する通知は、Google Maps API V2 を使用するアプリケーションにのみ有効である可能性があります。

リファラーを含むブラウザー リクエストは 403 で拒否されています。そのため、ブラウザーに壊れた画像のアイコンが表示されるのはなぜですか。

v2 URL に切り替えるか、URL に API キーを指定してください。

Google では、便宜のためにアップグレード ガイドを提供しています。

サンプル URL の正しい v2 URL は次のとおりです。

http://maps.google.com/maps/api/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=size:mid|color:red|label:A|52.955115,-1.149172&sensor=false

次の変更に注意してください。

  • 変更/staticmap?=>/maps/api/staticmap?
  • 追加したsensor=false
  • markersから52.955115,-1.149172,midredaに変更size:mid|color:red|label:A|52.955115,-1.149172

上記のすべてで、マップは赤いマーカーで正しく表示され、Google があなたのリクエストを V2 リクエストとして認識するようになります。

于 2011-03-22T15:17:03.130 に答える