2011-05-29 62 views
0

我試圖將一大塊Google Maps API腳本移出頁面並放入一個包含的.js文件中。似乎無法將JS參數(變量)傳遞給Google Map API v3函數

但是!爲了做到這一點,我必須調整函數來接受傳遞的變量。

下面是通常的腳本開始...

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

想法?也許這不應該是一個字符串...或什麼?

回答

3
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 
    }; 
} 
+0

是的,就是這樣。感謝大腦的力量! – Craig 2011-05-29 22:36:09

1

您需要將相同的參數...這方法接受2個參數:經度和緯度,不是一個單一的字符串參數。

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

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

是的,就是這樣。感謝大腦的力量! – Craig 2011-05-29 22:36:31

1

更改這一行:

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

也是一個整齊的東西,但肯定不會傳遞一個字符串更簡單。謝謝 – Craig 2011-05-29 22:38:04

+0

當然,但這是複製和粘貼&以後想知道的提案。以防萬一你需要將你的東西通過門。 – noiv 2011-05-29 22:42:37

0

由於近期你需要轉換的經緯度變量如下:

buildinglatlng =新google.maps.LatLng(編號(maplatitude)數(maplongitude));