GVKun编程网logo

将 Google Maps API 密钥添加到 Python 程序(谷歌地图api密钥)

4

本文将介绍将GoogleMapsAPI密钥添加到Python程序的详细情况,特别是关于谷歌地图api密钥的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些

本文将介绍将 Google Maps API 密钥添加到 Python 程序的详细情况,特别是关于谷歌地图api密钥的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于'google' 未定义使用 Google Maps JavaScript API Loader、Bing Maps & Bing Maps Silverlight Control中访问WMS笔记、Bing Maps Silverlight地图控件的扩展版Ldh.Maps.V1.1问题、bing-maps – 如何在Bing Maps Control中添加“你在这里”标记的知识。

本文目录一览:

将 Google Maps API 密钥添加到 Python 程序(谷歌地图api密钥)

将 Google Maps API 密钥添加到 Python 程序(谷歌地图api密钥)

如何解决将 Google Maps API 密钥添加到 Python 程序

我正在尝试获取 A 点和 B 点之间路线的 Google 街景图像,并将它们制作成视频。

我找到了 this 存储库,它完全符合我的要求。作者提到:

最后,也是最棘手的一点:代码需要用于 Google Map 的街景和路线 API 的 API 密钥。注意:设置街景 API 现在需要一个计费帐户!对于少量流量,它往往是免费的,但无论如何您都必须进行设置。

我设法设置了 Google Maps API 密钥,并且按照 Google 网站 here 的说明,我能够查询表单

  1. https://maps.googleapis.com/maps/api/streetview?size=400x400&location=47.5763831,-122.4211769
  2. &fov=80&heading=70&pitch=0&key=YOUR_API_KEY&signature=YOUR_SIGNATURE

并获得我想要的图像。

现在,在 Python 代码中,有一个文件 street_crawl.py,其中包含以下代码:

  1. import sys
  2. from utils import *
  3. from API_KEYS import API_KEY_DIRECTIONS,API_KEY_STREETVIEW
  4. ''''''Google Street View Movie Maker
  5. Usage is:
  6. python2 ./street_crawl.py lat1 lon1 lat2 lon2 output_filestem
  7. For example,to make a one-second video of the entrance of Joshua Treet National Park:
  8. python2 ./street_crawl.py 33.669793 -115.802125 33.671796 -115.801851 joshua_tree
  9. Note: usage requires your own API keys.
  10. ''''''
  11. def main(lat_lon_A,lat_lon_B,filestem,picsize):
  12. print "Tracing path from ({0}) to ({1})".format(lat_lon_A,lat_lon_B)
  13. # Request driving directions from A to B
  14. gd = googlemaps.Client(key=API_KEY_DIRECTIONS)

我尝试运行给出的代码,但它给了我一个错误:

  1. ImportError: No module named API_KEYS

我的问题是 - 我如何在此处输入我自己的 API 密钥?我应该将最后一行替换为:

  1. gd = googlemaps.Client(key="MY API KEY HERE")

并注释掉对 from API_KEYS import API_KEY_DIRECTIONS,API_KEY_STREETVIEW 的调用?

或者我是否必须创建一个名为 API_KEYS 的模块(文件?)并在那里以某种特定格式添加我的密钥?

我是 Python 的新手,所以任何帮助将不胜感激。

谢谢。

解决方法

显然,该项目的想法是拥有一个 API_KEYS.py,您将在其中定义 API_KEY_DIRECTIONSAPI_KEY_STREETVIEW(即各个 API 的密钥)。他们应该更好地记录它。 请注意,此文件包含在 .gitignore of the project 中。

另外,仅供参考,有多种方法可以处理 [隐藏] 源代码中的 API 密钥 - 他们决定使用这种方法。

'google' 未定义使用 Google Maps JavaScript API Loader

'google' 未定义使用 Google Maps JavaScript API Loader

如何解决''google'' 未定义使用 Google Maps JavaScript API Loader

我有一个使用 Google Maps JavaScript API Loader 的 Vue CLI 项目。我使用以下代码导入加载程序:

  1. import { Loader } from "@googlemaps/js-api-loader";

之后,我定义了加载器,如下所示:

  1. const loader = new Loader({
  2. apiKey: "XXXXX",version: "weekly",libraries: ["places"]
  3. });

现在,当我尝试使用 google.maps.Map 对象显示地图时,我收到一条错误消息,指出未定义“google”。上面的所有代码都在“src”目录下项目的“main.js”文件中,下面的代码是最后一点,不幸的是,触发了错误。

  1. loader.load().then(() => {
  2. map = new google.maps.Map(document.getElementById("map"),{
  3. center: { lat: -34.397,lng: 150.644 },zoom: 8,});
  4. });

我做错了什么?

附言我按照 Google 文档中的说明使用 npm 安装了 @googlemaps/js-api-loader

解决方法

在解决承诺时,使用新包不会返回“google”对象。相反,它附加到窗口中,就像按照 vue 教程(我也在关注)一样使用它,您需要添加:

this.google = window.google

到地图组件。为清楚起见:

  1. async mounted() {
  2. const googleMapApi = await Loader({ // <-- as per the documentation for the google maps api loader
  3. apiKey: this.apiKey
  4. })
  5. this.google = await googleMapApi.load(); // <- this returns a promise,but not a ''google'' object
  6. this.google = window.google; // <-- this line right here,set the google object to where the rest of the tutorial expects it to be
  7. this.initializeMap();
  8. },methods: {
  9. initializeMap() {
  10. const mapContainer = this.$refs.googleMap;
  11. this.map = new this.google.maps.Map(mapContainer,this.mapConfig);
  12. }
  13. }

参考我讲的教程:https://vuejs.org/v2/cookbook/practical-use-of-scoped-slots.html

,

嗨@Goodman L,你必须尝试一下。只需在代码前面添加 window .. 快乐编码

  1. window.google.maps.Map
,

让我们首先建立我们的 GoogleMapLoader.vue 模板:

  1. <template>
  2. <div>
  3. <div class="google-map" ref="googleMap"></div>
  4. <template v-if="Boolean(this.google) && Boolean(this.map)">
  5. <slot
  6. :google="google"
  7. :map="map"
  8. />
  9. </template>
  10. </div>
  11. </template>

现在,我们的脚本需要将一些道具传递给允许我们设置 Google Maps API 和 Map 对象的组件:

  1. import GoogleMapsApiLoader from ''google-maps-api-loader''
  2. export default {
  3. props: {
  4. mapConfig: Object,apiKey: String,},data() {
  5. return {
  6. google: null,map: null
  7. }
  8. },async mounted() {
  9. const googleMapApi = await GoogleMapsApiLoader({
  10. apiKey: this.apiKey
  11. })
  12. this.google = googleMapApi
  13. this.initializeMap()
  14. },methods: {
  15. initializeMap() {
  16. const mapContainer = this.$refs.googleMap
  17. this.map = new this.google.maps.Map(
  18. mapContainer,this.mapConfig
  19. )
  20. }
  21. }
  22. }

请按照本教程了解正确的方法。

https://vuejs.org/v2/cookbook/practical-use-of-scoped-slots.html

Bing Maps & Bing Maps Silverlight Control中访问WMS笔记

Bing Maps & Bing Maps Silverlight Control中访问WMS笔记

    头疼了好几天,在网上找了不少关于的该方面的文章,终于搞定了。微软也真是让人火大,OGC WMS标准都出台几年了,应用也很广了,Bing Maps API也好,Bing Maps Silverlight Control也好,竟然都不支持对它的访问!!!

    好不容易搞定了,还是记下来笔记。

 

一、Bing Maps API访问WMS

 

    我用的是Bing Maps + OpenLayers,直接参照MSDN就可以搞定,地址如下:

    Integrating OGC Web Mapping Services:http://msdn.microsoft.com/en-us/library/cc161076.aspx

 

    前台JavaScript这样写即可:

    var tileSourceSpec = new VETileSourceSpecification(

          'WMSBavariaGeo',

          'WMSTileServer.ashx?id=%4&layer=Countries,Rivers,Country labels');

 

     tileSourceSpec.Bounds = bounds;

     tileSourceSpec.MinZoomLevel = 0;

     tileSourceSpec.MaxZoomLevel = 19;

     tileSourceSpec.Opacity      = 0.4;

 

     map.AddTileLayer(tileSourceSpec);

 

二、Bing Maps Silverlight Control访问WMS

 

    这个搞定起来曲折多了。

    最先找到的一种方法能够访问,但是返回的图片位置在屏幕随着ZoomLevel的改变上下漂移。因为偶急需要软件界面样图,所以该方法也曾解了燃眉之急,呵呵!我最先找到这种方法的地址如下:

    bing silverlight control and wms bounding Box:http://cn.bing.com/community/forums/p/652190/9590047.aspx

 

    虽然解了燃眉之急,但问题还是没有解决啊。继续搜索……,突然:

    众里寻她千百度,蓦然回首,那人却在灯火阑珊处!!!

    急度汗颜!!!………………

    原来一直没有太注意的DeepEarth中就有类似的解决方案。原先总以为它跟微软的体系不同,应该不会兼容,所以没太在意。看了一个博客才知道,它现在正在逐渐改为对Bing Maps Silverlight Control的一种扩展,也颇好用!

    最先找到的解决方案网址如下:

    Overlay WMS on Google in Silverlight Bing:http://blog.sumbera.com/2010/02/25/overlay-wms-on-google-in-silverlight-bing/

    然后直上CodePlex网址的DeepEarth WMS解决方案源码页:http://deepearth.codeplex.com/sourcecontrol/changeset/view/37324?projectName=deepearth#583728

    修修改改,问题解决了,WMS返回的图像再也不发生“板块漂移”了,高兴啊!!!

 

    进一步改进:因为上面的解决方案需要引用DeepEarth动态库,偶是追求完美的人,所以希望能将方案可以直接改写为独立的C#类,不用再引用其他动态库。因为一凡查找,让俺找到了有心人,人家早已经实现到了这一步。仔细一看网址,这就是偶最初参考的那个网址……

    再次急度汗颜!!!………………

    看样子最初还是没完全搞懂啊!!!

    网址如下:Accessing WMS from Virtual Earth:http://vwl.nsquaredsolutions.com/Articles/VirtualEarth/AccessingWMSfromVirtualEarth.aspx

    实现中还差一个函数,不要紧,MSDN上有:http://msdn.microsoft.com/en-us/library/bb259689.aspx

 

    一切OK!淋浴中晨曦中一切看起来都那么的完美!^_^

 

    感谢天!感谢地!感谢阳光照耀着大地!感谢明月让我们相遇!感谢所有先行的网友………………

Bing Maps Silverlight地图控件的扩展版Ldh.Maps.V1.1问题

Bing Maps Silverlight地图控件的扩展版Ldh.Maps.V1.1问题

在网上无意中找到Ldh.Maps.V1.1源代码,看网上有介绍的感觉还不错,于是下载来使用一下,发现了问题,本来我是修改源代码后功能是好使了,但是我加到新工程后发现新改的功能没出来啊,于是想跟踪源代码看看,调试一下,这时候问题出来了,我设置的断点无法跟踪,VS2010或者VS2012都告诉我设置的断点无法命中,在网上找了找试了几个方法还是没有解决,最后我发现问题的只要我在A目录下的源代码我修改了,就无法调试,我把原来的源代码拷贝到另一个新的目录,在不修改源代码的情况下可以调试,只要我修改源代码就不能跟踪了,以前在机器一开始的时候我是可以进行修改源代码的基础上来调试程序的,但是现在不行了,始终没搞清楚问题在哪块。比较困惑。有遇到此问题的朋友告诉一下谢谢了。另外Ldh.Maps.V1.1这版在线地图我试用发现现在只能用谷歌的地图和卫星地图,街道是英文的,ABC的那个用不了。如果想改需要修改源代码。源代码可以改但是无法调试比较闹心。

bing-maps – 如何在Bing Maps Control中添加“你在这里”标记

bing-maps – 如何在Bing Maps Control中添加“你在这里”标记

如何在Bing Maps控件中添加“你在这里”标记?在电话上,这表示为正方形内的圆圈,然后有一个表示位置精度的外圆.
看起来你可以使用图钉和polgon来做,但我希望有一个更容易/更好的方法

解决方法

您可以使用GeoCoordinateWatcher类来提供当前位置,然后添加一个简单的图钉.我不认为图钉是一个糟糕的选择和/或难以使用.

GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();

GeoCoordinate loc = watcher.Position.Location;

if (loc.IsUnkNown == true)
{
    // Cannot retrieve the GPS position
    return;
}

MyBingMap.SetView(loc,17);

MapLayer pushpinLayer = new MapLayer();

MyBingMap.Children.Add(pushpinLayer);

pushpin p = new pushpin();

p.Content = "YOU ARE HERE";
p.Location = loc;

pushpinLayer.AddChild(p,loc,Positionorigin.BottomLeft);

今天关于将 Google Maps API 密钥添加到 Python 程序谷歌地图api密钥的介绍到此结束,谢谢您的阅读,有关'google' 未定义使用 Google Maps JavaScript API Loader、Bing Maps & Bing Maps Silverlight Control中访问WMS笔记、Bing Maps Silverlight地图控件的扩展版Ldh.Maps.V1.1问题、bing-maps – 如何在Bing Maps Control中添加“你在这里”标记等更多相关知识的信息可以在本站进行查询。

本文标签: