gmaps上的javascript数组

时间:2010-06-21 01:20:25

标签: javascript google-maps arrays

我是javascript的新手所以,在这个example中存在geometrycontrols.js(用于全局控件)和markercontrol.js(用于标记控件)

我的问题是识别保存“数据”的数组......

在参考我看到一个savedata函数,但我不知道如何使用这个函数...

另一方面,在test.html中如果我在Glog启动时输出并输出“数据”,让我想到来自数组...

我的目标是将坐标和其他所有属性保存到mysql数据库,当我发现“数据”在哪里时很容易。

如果有人使用这个例子(或不是)可以帮助我,我很感激

ps:我真是javascript的新手:P

EDIT1: 我出去了一段时间,现在我专注于geometrycontrols.js:GeometryControls.prototype.saveData = function(opts){ var me = this; if(opts.allData === true){ //me.saveAllData(); } else { //construct a json data record var geomInfo = opts.geomInfo, index = opts.geomInfo.index; var record = geomInfo.storage[index];
var recordJSON = {}; recordJSON.type = record.type; recordJSON.coordinates = [];

//determine geometry type, and copy geometry appropriately
if(record.type === "point"){
  recordJSON.coordinates.push({lat:record.geometry.getLatLng().lat(),lng:record.geometry.getLatLng().lng()});
 alert(recordJSON.coordinates);
} else {
    alert("is not point");
  var vertex;
  for(var i=0;i<record.geometry.getVertexCount();i++){
    vertex = record.geometry.getVertex(i);
    recordJSON.coordinates.push({lat:vertex.lat(),lng:vertex.lng()});

  }

}

//add title and description
recordJSON.title = record.title[0];
recordJSON.description = record.description[0];

//TODO add styles 
recordJSON.style = ""; //TODO}  //TODO Make separate prototype function?function postData(data){
//TODO 
me.debug(data);
//alert(recordJSON.coordinates);
//alert(data);
};postData(me.serialize(recordJSON));}; `

当我发出警报(recordJSON.coordinates)时,outupt是[object Object]并且我不知道为什么,理论上这个数组包含坐标......

2 个答案:

答案 0 :(得分:1)

这是我用来将数据发送到MySQL的一些代码。它使用一点点jQuery来做ajax魔术(以dollarign开头的行是jQuery)。

function postData(data){
me.debug(data);      
var dataString = JSON.stringify(data);   
me.debug(dataString);
$.post('storage.php', { data: dataString });   
}; 
postData(recordJSON);

正如您所看到的,我已经修改了'recordJSON'对象被发送到postData函数的方式:我已经删除了序列函数。

接下来,创建一个PHP文件(在我的例子中称为“storage.php”)并将其放入其中:

<?php
$received = json_decode($_POST['data'], true);
echo "just received " . $received['name'];
?>

你现在有一个PHP数组可以随意使用。

在上面的示例代码中,我稍微修改了jQuery post函数,所以如果它不起作用,请查看。

答案 1 :(得分:0)

数据以JSON格式存储在此文件中:http://gmaps-utility-library-dev.googlecode.com/svn/trunk/geometrycontrols/examples/data/testdata.js - 它几乎是自我记录的,只需按照示例设置您的坐标。

请注意,如果您需要查找给定地址的纬度和经度,这是一个不错的网站:http://itouchmap.com/latlong.html