Google Maps API JS - 从另一个JS文件访问标记位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Maps API JS - 从另一个JS文件访问标记位置相关的知识,希望对你有一定的参考价值。

我需要使用放置标记的位置,以便能够通过另一个API加载天气数据。我让我的地图放下一个加载并放下一个标记以及一个对象“myPosition”,它应该包含标记的lat和lon。我的问题是使用标记的坐标更新myPosition.lat和.lng。下面是我到目前为止的代码,我能够从另一个文件中的myPosition获取初始化数据,但我无法弄清楚如何获取坐标。这是我第一次使用html和JS而且我通常使用C ++或Java,这对我来说有点变化。

var myPosition = 
{
lat: 0,
lng: 0
}; 

function initMap()
{
var texas = {lat: 32.7767, lng: -96.7970};
var map = new google.maps.Map(document.getElementById('map'), 
{
    zoom: 10,
    center: texas
});

var marker = new google.maps.Marker({
    position: texas,
    map: map
});

google.maps.event.addListener(map, 'click', function(event)
{
    placeMarker(event.latLng);
});

function placeMarker(location)
{ 
    if (marker == undefined)
    {
        marker = new google.maps.Marker(
        {
            position: location,
            map: map, 
            animation: google.maps.Animation.DROP,
        });
    }
    else
    {
        marker.setPosition(location);
    }

map.setCenter(location);
}
}
答案

听起来你需要的是考虑问题而不是你的“其他文件”访问坐标,更多的是通过回调通知你的其他模块鼠标点击地图。

例如。在weather.js

function handleCoords(latlng){
   //...Do whatever you want with latlng
}

// Export function as needed if you're using modules/webpack.
// (don't worry if you don't know what this means)

然后在你的嵌入式HTML嵌入式JS中的main.js

// import {handleCoords} from './weather'
// Again ignore this if you're not using modules/don't know what this means.

google.maps.event.addListener(map, 'click', function(event){
    placeMarker(event.latLng);
    handleCoords(event.latLng); // This is how you pass the latlng 
                                       // along to weather.js 

});

以上是关于Google Maps API JS - 从另一个JS文件访问标记位置的主要内容,如果未能解决你的问题,请参考以下文章

google maps js v3 api教程 -- 在地图上添加标记

google maps js v3 api教程 -- 创建infowindow

Google Maps Geocoding API,其 JS api 中缺少的 API 功能(?)

React js react-google-maps-api 更改颜色标记默认

Google Maps JS API 多边形渲染问题

如何自定义附近地点搜索返回的结果,Google Maps JS API V3