Files
Facilitor/APPL/CAD/ShowGoogleMap.asp
Ruud Lipper 351e4bc663 KFNS#40809 Streetview bij gebouw via google maps
svn path=/Website/branches/v2017.1/; revision=34159
2017-06-07 13:20:23 +00:00

142 lines
4.1 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: ShowGoogleMap.asp
Description: Toon een object in een Google Map
Parameters:
obj_key Toon maps/positie van dit object
Context:
Note: Zorg dat je een passende Google Maps API key aanvraagt
Veronderstelt dat bij het object Lat Lon coordinaten
zijn ingesteld.
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../CAD/FGII.inc" -->
<!-- #include file="../SlnkDWF/Slnk2IMG.inc" -->
<%
var obj_key = getQParamInt("obj_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var bld_key = getQParamInt("bld_key", -1);
var sql = "";
var fg_remote_maps = S("ins_fg_remote_maps");
var title = L("lcl_maps");
// sql heeft in ieder geval een geldige query, ongeacht de params
sql = "SELECT ins_deel_x rdX, ins_deel_y rdY, ins_deel_omschrijving oms"
+ " FROM ins_deel"
+ " WHERE ins_deel_key = " + obj_key;
if (loc_key > -1)
{
sql = "SELECT alg_locatie_x rdX, alg_locatie_y rdY, alg_locatie_omschrijving oms"
+ " FROM alg_locatie"
+ " WHERE alg_locatie_key = " + loc_key;
var fg_remote_maps = S("alg_fg_remote_maps");
}
if (bld_key > -1)
{
sql = "SELECT alg_gebouw_x rdX, alg_gebouw_y rdY, alg_gebouw_omschrijving oms"
+ " FROM alg_gebouw"
+ " WHERE alg_gebouw_key = " + bld_key;
var fg_remote_maps = S("alg_fg_remote_maps");
}
__Log("obj_key=" + obj_key + "| loc_key=" + loc_key + "| bld_key=" + bld_key);
var validKey = 1; // 1=yes
var validXY = 1; // 1=yes
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var rdX = oRs("rdX").value;
var rdY = oRs("rdY").value;
var oms = oRs("oms").value;
title += ' ' + oms;
if ((rdX == null) || (rdY == null))
{
validXY = 0;
var rdX = 0;
var rdY = 0;
}
}
else
{
validKey = 0;
var rdX = 0;
var rdY = 0;
}
__Log("rdX=" + rdX + " rdY=" + rdY);
%>
<html>
<head>
<title><%=title%></title>
<style type="text/css">
html, body { height: 100%; margin: 0; padding: 0;}
geenhekjeaanbeginregel, #map, #pano { float: left; height: 100%; width: 50%; }
</style>
<script type="text/javascript" async defer
src='//maps.googleapis.com/maps/api/js?key=<%=safe.htmlattr(fg_remote_maps)%>&callback=initMap'>
</script>
<script>
function initMap()
{
if (<%=validKey%> == 1)
{
if (<%=validXY%> == 1)
{
if (1||GBrowserIsCompatible())
{
var coord = {lat: <%=safe.jsfloat(rdX)%>, lng: <%=safe.jsfloat(rdY)%> };
var map = new google.maps.Map(document.getElementById("map"),
{
center: coord,
zoom: 17,
xmapTypeId: google.maps.MapTypeId.HYBRID
});
var infowindow = new google.maps.InfoWindow({
content: "<%=safe.jsstring(oms)%>"
});
var panorama = new google.maps.StreetViewPanorama(
document.getElementById('pano'), {
position: coord,
pov: {
pitch: 10
}
});
map.setStreetView(panorama);
var marker = new google.maps.Marker({
position: coord,
map: map,
title: '<%=safe.jsstring(oms)%>'
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
}
else
{
FcltMgr.alert(L("lcl_fg_nomaps"));
window.close();
}
}
else
{
// Kan eigenlijk niet voorkomen
window.close();
}
}
</script>
</head>
<body id="googleMap" style="margin:0">
<div id="map"></div>
<div id="pano"></div>
</body>
</html>