1
我谷歌的教程以下Oracle映射到保存覆蓋到MySQL:https://developers.google.com/maps/articles/phpsqlinfo_v3,但我不能與Oracle實現它。如果有人能指出我的錯誤,這是我到目前爲止的代碼:保存谷歌地圖多邊形疊加到使用PHP
function savePolygons(){
for (var i = 0; i < createdShapes.length; i++){
var nom_zone = document.getElementById('nom_zone_' + createdShapes[i].id).value;
alert(nom_zone)
var couleur = createdShapes[i].fillColor;
alert(couleur)
var code_cs = '711';
var shapeid_export = createdShapes[i].id;
alert(shapeid_export)
var geometry = createdShapes[i].getPath().getArray();
alert(geometry)
var url1 = "oracle_savePolygons.php?nom_zone=" + nom_zone + "&couleur=" + couleur + "&code_cs=" + code_cs + "&shapeid_export=" + shapeid_export + "&geometry=" + geometry;
downloadUrl(url1, function(data, responseCode){
if (responseCode == 200 && data.length <= 1) {
infowindow.close();
}
});
}
}
function downloadUrl(url1, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open('GET', url1, true);
request.send(null);
}
function doNothing() {}
有在本地主機上使用的EasyPHP oracle_savePolygons.php,Im的PHP代碼:
<?php
require("oracle_dbinfo.php");
$nom_zone =$_GET['nom_zone'];
$shapeid_export = $_GET['shapeid_export'];
$code_cs = $_GET['code_cs'];
$couleur = $_GET['couleur'];
$geometry = $_GET['geometry'];
$conn = oci_connect($username, $password, $database);
$query = oci_parse($conn, 'INSERT INTO test1 (shapeid, nom_zone, code_cs, couleur, geometry) VALUES (:nom_zone, :shapeid_export, :code_cs, :couleur, :geometry)';
oci_bind_by_name($query, ":nom_zone", $nom_zone);
oci_bind_by_name($query, ":shapeid_export", $shapeid_export);
oci_bind_by_name($query, ":code_cs", $code_cs);
oci_bind_by_name($query, ":couleur", $couleur);
oci_bind_by_name($query, ":geometry", $geometry);
oci_execute($query);
oci_commit($conn);
?>
我已經找到了另一個解決方案是:
function savePolygons(){
for (var i = 0; i < createdShapes.length; i++){
var nom_zone = escape(document.getElementById('nom_zone_' + createdShapes[i].id).value);
var couleur = escape(createdShapes[i].fillColor);
var code_cs = escape('711');
var shapeid_export = escape(createdShapes[i].id);
var geometry = createdShapes[i].getPath().getArray();
var url1 = "oracle_savePolygons.php?nom_zone=" + nom_zone + "&couleur=" + couleur + "&code_cs=" + code_cs + "&shapeid_export=" + shapeid_export + "&geometry=" + geometry;
window.location.href = url1 ;
}
}
它的工作,但我不知道是否使用window.location.href是一個安全的解決方案。我在將geometry數組插入test 1表的oracle GEOMETRY CLOB var時也遇到了問題。我有一個oci_execute錯誤,我不知道爲什麼。一個4000字節的varchar對於多邊形幾何體是否足夠大?
謝謝你,你的職位是有用的我要得到的座標與的getPath()的getArray() –
歡迎您 –
另一個問題。你如何用座標數組重建多邊形?我有一個這樣的串在我的分貝(45.234234,-74.23424),(45.234266,-74.23423424).... –