Files
Facilitor/APPL/MARX/GetLatLng.inc
Marcel Bourseau 6f98b73ff8 MARX#69975 Uitbreiden dagelijkse inzetbaarheid met gebied-aanduiding
svn path=/Website/trunk/; revision=54297
2021-12-23 18:16:22 +00:00

63 lines
2.2 KiB
PHP

<% /*
$Revision$
$Id$
File: GetLatLng.inc
Description: Berekent obv Google GeoCode van een adres de LatLong coordinaten
Parameters:
obj_key p_adres (string): [Plaats]+[Straat]+[Huisnr], dus b.v. "Amsterdam+Kalverstraat+1"
Result v_result (string): [Lat]|[Long], dus b.v. "52.123456|4.567890"
Context:
Note: Zorg dat je een passende Google Maps API key aanvraagt
Veronderstelt dat bij het object Lat Lon coordinaten
zijn ingesteld.
*/
%>
<%
function GetLatLng (p_adres){
// p_adres is varchar: [Plaats]+[Straat]+[Huisnr], dus b.v. "Amsterdam+Kalverstraat+1"
// Resultaat v_result varchar: [Lat]|[Long], dus b.v. "52.123456|4.567890"
__Log("GetLatLng, p_adres:" + p_adres);
var v_result = "";
if (p_adres!= ""){
var v_apikey = S("alg_fg_remote_maps");
if (v_apikey){
v_url_GoogleGeoCode = "https://maps.googleapis.com/maps/api/geocode/xml?address=" + encodeURIComponent(p_adres) + "&key=" + safe.url(v_apikey);
__Log("v_url_GoogleGeoCode: " + v_url_GoogleGeoCode);
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
xmlhttp.open("GET", v_url_GoogleGeoCode, false);
xmlhttp.send();
__Log("Response: " + xmlhttp.responseText);
var xmlResp = Server.CreateObject("Msxml2.DOMDocument.6.0");
xmlResp.resolveExternals = false; // XML-data vertrouwen we niet altijd
xmlResp.validateOnParse = false; // maar dan kun je geen DTD's meer controleren
xmlResp.loadXML(xmlhttp.responseText);
var strQuery = "GeocodeResponse/result/geometry/location/lat";
var v_lat = xmlResp.selectSingleNode(strQuery);
var strQuery = "GeocodeResponse/result/geometry/location/lng";
var v_lng = xmlResp.selectSingleNode(strQuery);
if (v_lat && v_lng)
{ __Log(v_lat.text);
__Log(v_lng.text);
v_result = v_lat.text + "|" + v_lng.text;
}
else
{
__Log("No LatLong Result");
}
}
}
return(v_result);
}
%>