繁体   English   中英

似乎无法将 JS 参数(变量)传递给 Google Map API v3 function

[英]Can't seem to pass JS argument (variable) to Google Map API v3 function

我正在尝试将一大块 Google 地图 API 脚本移出页面并放入 include.js 文件中。

但。 为了做到这一点,我必须调整 function 以接受传递的变量。

这是脚本的开头通常...

<script type="text/javascript">
//<![CDATA[
function loadGmap() {
  var map1options = {
    center: new google.maps.LatLng(-12.043333,-77.028333),
    mapTypeId: google.maps.MapTypeId.TERRAIN,
    zoom: 4,
    minZoom: 2,
    streetViewControl: false
  };

这是我尝试传递第一个变量(并且失败)...

<script type="text/javascript">
//<![CDATA[
function loadGmaps() {
  loadGmap('-12.043333,-77.028333');
}

function loadGmap(coordinates) {
  var map1options = {
    center: new google.maps.LatLng(coordinates),
    mapTypeId: google.maps.MapTypeId.TERRAIN,
    zoom: 4,
    minZoom: 2,
    streetViewControl: false
  };

想法? 也许这不应该是一个字符串......或者什么?

center: new google.maps.LatLng(-12.043333,-77.028333),

在那里,您将两个 arguments 传递给LatLng 在您的新 function 中,您仍然需要将两个 arguments 传递给LatLng 最简单的方法是接受两个 arguments 到您的 function:

function loadGmaps() {
    loadGmap(-12.043333,-77.028333);
}

function loadGmap(lat, lng) {
    var map1options = {
        center: new google.maps.LatLng(lat, lng),
        mapTypeId: google.maps.MapTypeId.TERRAIN,
        zoom: 4,
        minZoom: 2,
        streetViewControl: false
    };
}

您需要传递相同的 arguments ... 该方法接受 2 个 arguments:纬度和经度,而不是单个字符串参数。

function loadGmaps() {
    loadGmap(-12.043333, -77.028333);
}

function loadGmap(lat, long) {
    var map1options = {
        center: new google.maps.LatLng(lat, long),
        ...

更改为这一行:

center: new google.maps.LatLng(
  parseFloat(coordinates.split(",")[0]), 
  parseFloat(coordinates.split(",")[1])
),   

截至最近,您需要按如下方式转换 LatLng 变量:

buildinglatlng = new google.maps.LatLng(Number(maplatitude), Number(maplongitude));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM