Не могу передать аргумент (переменную) JS в функцию Google Map API v3 - PullRequest
0 голосов
/ 30 мая 2011

Я пытаюсь переместить большой блок сценария API Карт Google со страницы во включенный файл .js.

Но!Чтобы сделать это, я должен настроить функцию для приема переданных переменных.

Вот обычно начало скрипта ...

<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
  };

Идеи?Может быть, это не должна быть строка ... или что-то в этом роде?

Ответы [ 4 ]

3 голосов
/ 30 мая 2011
center: new google.maps.LatLng(-12.043333,-77.028333),

Там вы передаете два аргумента LatLng.В вашей новой функции вам все еще нужно передать два аргумента LatLng.Самый простой способ сделать это - принять два аргумента вашей функции:

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
    };
}
1 голос
/ 30 мая 2011

Изменить на эту строку:

center: new google.maps.LatLng(
  parseFloat(coordinates.split(",")[0]), 
  parseFloat(coordinates.split(",")[1])
),   
1 голос
/ 30 мая 2011

Вам нужно передать те же аргументы ... Этот метод принимает 2 аргумента: широту и долготу, а не один строковый аргумент.

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

function loadGmap(lat, long) {
    var map1options = {
        center: new google.maps.LatLng(lat, long),
        ...
0 голосов
/ 29 ноября 2012

С недавних пор вам нужно CAST переменные LatLng следующим образом:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...