本文将介绍将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' 未定义使用 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 程序
我正在尝试获取 A 点和 B 点之间路线的 Google 街景图像,并将它们制作成视频。
我找到了 this 存储库,它完全符合我的要求。作者提到:
最后,也是最棘手的一点:代码需要用于 Google Map 的街景和路线 API 的 API 密钥。注意:设置街景 API 现在需要一个计费帐户!对于少量流量,它往往是免费的,但无论如何您都必须进行设置。
我设法设置了 Google Maps API 密钥,并且按照 Google 网站 here 的说明,我能够查询表单
https://maps.googleapis.com/maps/api/streetview?size=400x400&location=47.5763831,-122.4211769
&fov=80&heading=70&pitch=0&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
并获得我想要的图像。
现在,在 Python 代码中,有一个文件 street_crawl.py,其中包含以下代码:
import sys
from utils import *
from API_KEYS import API_KEY_DIRECTIONS,API_KEY_STREETVIEW
''''''Google Street View Movie Maker
Usage is:
python2 ./street_crawl.py lat1 lon1 lat2 lon2 output_filestem
For example,to make a one-second video of the entrance of Joshua Treet National Park:
python2 ./street_crawl.py 33.669793 -115.802125 33.671796 -115.801851 joshua_tree
Note: usage requires your own API keys.
''''''
def main(lat_lon_A,lat_lon_B,filestem,picsize):
print "Tracing path from ({0}) to ({1})".format(lat_lon_A,lat_lon_B)
# Request driving directions from A to B
gd = googlemaps.Client(key=API_KEY_DIRECTIONS)
我尝试运行给出的代码,但它给了我一个错误:
ImportError: No module named API_KEYS
我的问题是 - 我如何在此处输入我自己的 API 密钥?我应该将最后一行替换为:
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_DIRECTIONS
和 API_KEY_STREETVIEW
(即各个 API 的密钥)。他们应该更好地记录它。
请注意,此文件包含在 .gitignore of the project 中。
另外,仅供参考,有多种方法可以处理 [隐藏] 源代码中的 API 密钥 - 他们决定使用这种方法。
'google' 未定义使用 Google Maps JavaScript API Loader
如何解决''google'' 未定义使用 Google Maps JavaScript API Loader
我有一个使用 Google Maps JavaScript API Loader 的 Vue CLI 项目。我使用以下代码导入加载程序:
import { Loader } from "@googlemaps/js-api-loader";
之后,我定义了加载器,如下所示:
const loader = new Loader({
apiKey: "XXXXX",version: "weekly",libraries: ["places"]
});
现在,当我尝试使用 google.maps.Map 对象显示地图时,我收到一条错误消息,指出未定义“google”。上面的所有代码都在“src”目录下项目的“main.js”文件中,下面的代码是最后一点,不幸的是,触发了错误。
loader.load().then(() => {
map = new google.maps.Map(document.getElementById("map"),{
center: { lat: -34.397,lng: 150.644 },zoom: 8,});
});
我做错了什么?
附言我按照 Google 文档中的说明使用 npm 安装了 @googlemaps/js-api-loader。
解决方法
在解决承诺时,使用新包不会返回“google”对象。相反,它附加到窗口中,就像按照 vue 教程(我也在关注)一样使用它,您需要添加:
this.google = window.google
到地图组件。为清楚起见:
async mounted() {
const googleMapApi = await Loader({ // <-- as per the documentation for the google maps api loader
apiKey: this.apiKey
})
this.google = await googleMapApi.load(); // <- this returns a promise,but not a ''google'' object
this.google = window.google; // <-- this line right here,set the google object to where the rest of the tutorial expects it to be
this.initializeMap();
},methods: {
initializeMap() {
const mapContainer = this.$refs.googleMap;
this.map = new this.google.maps.Map(mapContainer,this.mapConfig);
}
}
参考我讲的教程:https://vuejs.org/v2/cookbook/practical-use-of-scoped-slots.html
,嗨@Goodman L,你必须尝试一下。只需在代码前面添加 window
.. 快乐编码
,
window.google.maps.Map
让我们首先建立我们的 GoogleMapLoader.vue
模板:
<template>
<div>
<div class="google-map" ref="googleMap"></div>
<template v-if="Boolean(this.google) && Boolean(this.map)">
<slot
:google="google"
:map="map"
/>
</template>
</div>
</template>
现在,我们的脚本需要将一些道具传递给允许我们设置 Google Maps API 和 Map 对象的组件:
import GoogleMapsApiLoader from ''google-maps-api-loader''
export default {
props: {
mapConfig: Object,apiKey: String,},data() {
return {
google: null,map: null
}
},async mounted() {
const googleMapApi = await GoogleMapsApiLoader({
apiKey: this.apiKey
})
this.google = googleMapApi
this.initializeMap()
},methods: {
initializeMap() {
const mapContainer = this.$refs.googleMap
this.map = new this.google.maps.Map(
mapContainer,this.mapConfig
)
}
}
}
请按照本教程了解正确的方法。
https://vuejs.org/v2/cookbook/practical-use-of-scoped-slots.html
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 – 如何在Bing Maps Control中添加“你在这里”标记
看起来你可以使用图钉和polgon来做,但我希望有一个更容易/更好的方法
解决方法
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中添加“你在这里”标记等更多相关知识的信息可以在本站进行查询。
本文标签: