Ik heb een datasetje waarin ik een kolom met verwijzing naar een streetsmart-foto wil toevoegen (voor alle objecten een aparte foto).
Bijvoorbeeld in QGIS, maar in FME mag ook.
Weet iemand of dat mogelijk is?
Geen idee hoe dat met streetsmart werkt, maar er is een QGIS plugin die de foto’s kan tonen van google streetview. Die kan de link voor de locatie vinden, dus met wat knutselwerk kun je die ook wel opslaan. (Waarom wil je dink eigenlijk opslaan? Ik denk dat dit soort api’s altijd wel met een coordinaat uit de voeten kunnen. Dus je kunt misschien een url maken waarin de x en y verwerkt zijn?)
Even kijken bij de StreetSmart plugin? (door Merkator voor Cyclomedia ontwikkeld)
https://www.cyclomedia.com/en/qgis
Dank, ik kan ook wel wat met de plugin Streetsmart. Inderdaad met een link, niet met een afbeelding. Go2streetsmart werkt niet goed.
Deze lijkt niet meer te werken, enig idee of het nog bestaat?
Je kunt ook ergens een webpagina inrichten met ongeveer de volgende inhoud:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Streetsmart</title>
<script type="text/javascript" src="https://unpkg.com/react@16.12.0/umd/react.production.min.js"></script>
<!--suppress JSUnresolvedLibraryURL -->
<script type="text/javascript" src="https://unpkg.com/react-dom@16.12.0/umd/react-dom.production.min.js"></script>
<!--suppress JSUnresolvedLibraryURL -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/4.3.3/ol.js"></script>
<!--suppress JSUnresolvedLibraryURL -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
<script type="text/javascript" src="https://streetsmart.cyclomedia.com/api/v22.1/StreetSmartApi.js?f1733f8beb7131559070" ></script>
<style>
*[disabled] {
opacity: 0.5;
}
html, body {
height: 100%; /* heel belangrijk */
overflow: none;
}
.panoramaViewerWindow {
display: inline-block;
width: 100%;
height:100%;
}
</style>
</head>
<body onload="initApi()" >
<div id="streetsmartApi" class="panoramaViewerWindow"></div>
<script>
var qs = (function(a) {
if (a == "") return {'x': 155000, 'y': 463000};
var b = {};
for (var i = 0; i < a.length; ++i)
{
var p=a[i].split('=', 2);
if (p.length == 1)
b[p[0]] = "";
else
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
}
return b;
})(window.location.search.substr(1).split('&'));
function initApi() {
StreetSmartApi.init({
targetElement: document.getElementById('streetsmartApi'),
username: "username goes here",
password: "password goes here",
apiKey: "apiKey goes here",
srs: "EPSG:28992",
locale: 'nl',
configurationUrl: 'https://atlas.cyclomedia.com/configuration',
addressSettings:
{
locale: "nl",
database: "CMDatabase"
}
}).then(
function() {
var viewerType = [StreetSmartApi.ViewerType.PANORAMA,StreetSmartApi.ViewerType.OBLIQUE];
console.log('Api: init: success!');
StreetSmartApi.open(qs['x'] + ',' + qs['y'],
{
viewerType: viewerType,
srs: 'EPSG:28992',
panoramaViewer: {
recordingsVisible: false, //heeft geen effect, de recordings blijven visible
timeTravelVisible: false, //heeft geen effect, timetravel blijft visible
},
}).then(
function(result)
{
console.log('Created component through API:', result);
if (result)
{
for (let i =0; i < result.length; i++)
{
if(result[i].getType() === StreetSmartApi.ViewerType.PANORAMA) {window.panoramaViewer = result[i];}
if(result[i].getType() === StreetSmartApi.ViewerType.OBLIQUE) {window.obliqueViewer = result[i]};
}
}
}.bind(this)
).catch(
function(reason)
{
console.log('Failed to create component(s) through API: ' + reason);
}
);
},
function(err) {
console.log('Api: init: failed. Error: ', err);
alert('Api Init Failed!');
}
);
}
</script>
</body>
</html>
Daarna kun je die tonen bij een muisklik in QGIS via een “action” waarbij dan de ingestelde url is: https://je_webpagina_adres.nl?x=15500&y=463000 als je de onzelievevrouwetoren in Amersfoort wilt zien.