0
所以我有一个表单,用户完成,我试图提交表单的地理编码对象,所以谷歌地图API可以绘制它。地理编码API表单提交
HTML:
<form name="add" onsubmit="submits()" action="index.php" method="post">
Resource Name: <textarea name="name" type="text"></textarea><br><br>
Resource Type: <textarea name="type" type="text" ></textarea><br><br>
Street Number: <input type="number" id = "streetnum" name="streetnum"><br>
Street Name: <input type="text" id="streetnam" name="streetnam"><br>
City: <input type="text" id="city" name="city">
State: <input type="text" id="state" name= "state"> <br><br>
Resource Start Date: <input type="date" name="start" id="start"/> <br>
Resource End Date: <input type="date" name="end" id="end">
<input type="text" name="addressobject" id="addressobject" style="display:none" >
<input type= "checkbox" name="annual" id= "annual" value="annual">Annual<br><br>
<div id="new">
</div>
Details: <textarea name="details" rows=5 type="text" ></textarea>
<input name="submit" type="submit" value="Create Event"/>
<button type="button" onclick="addNew()">Add more date fields</button>
<button type="button" onclick="deleteAtt()">Delete a date field</button>
</form>
Javscript:
<script>
function submits(){
var address= document.getElementById("streetnum").value + " " + document.getElementById("streetnam").value+ ", " + document.getElementById("city").value+", " + document.getElementById("state").value;
var JSONobject;
var geocoder = new google.maps.Geocoder();
if(geocoder){
geocoder.geocode({'address':address}, function(results,status){
if(status==google.maps.GeocoderStatus.OK){
if(status!=google.maps.GeocoderStatus.ZERO_RESULTS){
JSONobject = window.JSON.stringify(results);
document.getElementById("addressobject").value = JSONobject;
}else{
alert("No results found");
}
}else{
alert("Geocode was not successful for the following reason: " +status);
}
});
}
}
</script>
出于某种原因,当我打电话从它的工作原理控制台submits()
但是当我实际使用的按钮,我得到的错误:
GEOCODE was not successful for the following reasons :ERROR
我应该如何保存结果呢? – JBaoz
那么,首先,如果您阅读[TOS](https://developers.google.com/maps/terms),则只能“暂时”缓存该数据。另一个问题是,你需要什么数据?你为什么需要一切?如果您所需要的只是坐标和/或视口/边界,请以您自己的格式存储这些格式,并将其转换回当前版本的google.maps对象(为该属性提供有用的名称,例如{lat:xxx,lng: xxx},然后使用记录的方法.lat(),.lng()等获取它们;然后在从服务器检索对象时编写代码以重建对象) – geocodezip
您的问题表明'所以我有一个表单完成,我试图提交地理编码的对象的形式,所以谷歌地图API可以绘制它。“为什么你需要将地理编码器响应存储在数据库中,以显示它在地图上?当它从服务器返回而不通过数据库时,您可以在地图上显示它。很可能,您真正需要的是存储在数据库中的“最佳”结果的坐标。 – geocodezip