none
Problem with shape altitude in Bird's Eye View RRS feed

  • Question

  • Hello,

    In november 2011, I write a question at Richard_Brundritt about a problem with shape altitude in Bird's Eye View (see the printscreen and code below). It appear the problem has appear since the V7 (note that before the shape perfectly overlaps the image). Richard_Brundritt had solve the problem but today I discover the same case of altitude shift has reappear.

    Thanks a lot in advance for your help.

    Best Wishes.

    BEFORE

    NOW (altitude shift)

    SOURCE CODE (simplified)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
    <script type="text/javascript">
    
    map = null;
    
    function GetMap() {
    groundloc = new Microsoft.Maps.Location(46.2205224557162,6.13511163739768);
    options = {credentials:"AsW0s8Sc616FO8QevH7cygNS_99tdwh0WXVbaR0-U8JGKenfTiRNjZlD8-JlnFj-", width: 500, height: 500, center: groundloc, mapTypeId:Microsoft.Maps.MapTypeId.birdseye, zoom:20, showMapTypeSelector:false, useInertia:false, enableClickableLogo:false, enableSearchLogo:false};
    map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), options);
    
    //Definition de la r&eacute;f&eacute;rence altim&eacute;trique
    alt = Microsoft.Maps.AltitudeReference.ground;
    
    // Polygones toits_verts
    coord_TV_no13164 = new Array(new Microsoft.Maps.Location(46.2204174678963,6.13453673927338,-0.391999999999996, alt), new Microsoft.Maps.Location(46.2203234483596,6.13469159659569,-0.391999999999996, alt), new Microsoft.Maps.Location(46.2205169369413,6.13493541831341,-0.391999999999996, alt));
    polyg_TV_no13164 = new Microsoft.Maps.Polygon(coord_TV_no13164);
    map.entities.push(polyg_TV_no13164);
    
    // Polygones BATI3D
    coord_BATI3D_no3988 = new Array(new Microsoft.Maps.Location(46.220197637373,6.13478949941751,-6.17999999999302, alt), new Microsoft.Maps.Location(46.220197637373,6.13478949941751,-0.399000000005003, alt), new Microsoft.Maps.Location(46.2201985502676,6.13479064276689,-0.398900000000026, alt));
    coord_BATI3D_no4005 = new Array(new Microsoft.Maps.Location(46.220679252437,6.13544661484669,-6.17999999999302, alt), new Microsoft.Maps.Location(46.220679252437,6.13544661484669,-0.386199999994005, alt), new Microsoft.Maps.Location(46.2208425909662,6.13518062441071,-0.385599999993985, alt));
    coord_BATI3D_no4038 = new Array(new Microsoft.Maps.Location(46.2206391729602,6.13524161413353,34.165699999998, alt), new Microsoft.Maps.Location(46.2206077152038,6.13519843484281,34.171100000007, alt), new Microsoft.Maps.Location(46.2206077152038,6.13519843484281,35.149999999994, alt), new Microsoft.Maps.Location(46.2206391729602,6.13524161413353,35.149999999994, alt), new Microsoft.Maps.Location(46.2206391729602,6.13524161413353,34.165699999998, alt));
    polyg_BATI3D_no3988 = new Microsoft.Maps.Polygon(coord_BATI3D_no3988);
    polyg_BATI3D_no4005 = new Microsoft.Maps.Polygon(coord_BATI3D_no4005);
    polyg_BATI3D_no4038 = new Microsoft.Maps.Polygon(coord_BATI3D_no4038);
    map.entities.push(polyg_BATI3D_no3988);
    map.entities.push(polyg_BATI3D_no4005);
    map.entities.push(polyg_BATI3D_no4038);
    
    }
    
    function ActivToitsVerts() {
    //Couleur toits_verts
    TV_rempli_transp = 70;
    TV_rempli_R = 0;
    TV_rempli_V = 255;
    TV_rempli_B = 0;
    TV_bord_R = 0;
    TV_bord_V = 0;
    TV_bord_B = 0;
    TV_Ep_bord = 2;
    
    //Activation toits_verts
    Cbox_TV = document.getElementById("ActivToitsVerts");
    if (Cbox_TV.checked) {
    TV_visible = true;
    }
    else {
    TV_visible = false;
    }
    
    //Param&eacute;trage toits_verts
    polyg_TV_no13164.setOptions({visible: TV_visible, fillColor:new Microsoft.Maps.Color(TV_rempli_transp, TV_rempli_R, TV_rempli_V, TV_rempli_B), strokeColor:new Microsoft.Maps.Color(255, TV_bord_R, TV_bord_V, TV_bord_B), strokeThickness:TV_Ep_bord});
    
    }
    
    function ActivBATI3D() {
    //Couleur BATI3D
    bat_rempli_transp = 0;
    bat_rempli_R = 255;
    bat_rempli_V = 255;
    bat_rempli_B = 255;
    bat_bord_R = 50;
    bat_bord_V = 50;
    bat_bord_B = 50;
    bat_Ep_bord = 1;
    
    //Activation BATI3D
    Cbox_BATI3D = document.getElementById("ActivBATI3D");
    if (Cbox_BATI3D.checked) {
    bat_visible = true;
    }
    else {
    bat_visible = false;
    }
    
    //Param&eacute;trage BATI3D
    polyg_BATI3D_no3988.setOptions({visible: bat_visible, fillColor:new Microsoft.Maps.Color(bat_rempli_transp, bat_rempli_R, bat_rempli_V, bat_rempli_B), strokeColor:new Microsoft.Maps.Color(255, bat_bord_R, bat_bord_V, bat_bord_B), strokeThickness:bat_Ep_bord});
    polyg_BATI3D_no4005.setOptions({visible: bat_visible, fillColor:new Microsoft.Maps.Color(bat_rempli_transp, bat_rempli_R, bat_rempli_V, bat_rempli_B), strokeColor:new Microsoft.Maps.Color(255, bat_bord_R, bat_bord_V, bat_bord_B), strokeThickness:bat_Ep_bord});
    polyg_BATI3D_no4038.setOptions({visible: bat_visible, fillColor:new Microsoft.Maps.Color(bat_rempli_transp, bat_rempli_R, bat_rempli_V, bat_rempli_B), strokeColor:new Microsoft.Maps.Color(255, bat_bord_R, bat_bord_V, bat_bord_B), strokeThickness:bat_Ep_bord});
    
    }
    
    </script>
    </head>
    
    <body onload="GetMap(); ActivToitsVerts(); ActivBATI3D();" bgcolor="black" font-face="arial">
    <div id="mapDiv" style="Background-color:black"></div>
    <font size="3" face="Arial" color="white">
    <BR>
    <TABLE width="500" BORDER="2">
    <TR>
    <TD colspan="2" bgcolor="bbbbbb" style="color:black"> <b> Activation des couches </b> </TD>
    </TR>
    <TR>
    <TD width="250"> <input type="checkbox" id="ActivToitsVerts" checked="checked" onclick="ActivToitsVerts();" /> Toits verts </TD>
    <TD> <input type="checkbox" id="ActivBATI3D" checked="checked" onclick="ActivBATI3D();" /> BATI3D </TD>
    </TR>
    </TABLE>
    
    <BR>
    <TABLE width="500" BORDER="2" style="color:white">
    <TR>
    <TD colspan="2" bgcolor="bbbbbb" style="color:black"> <b> Attributs </b> </TD>
    </TR>
    <TR>
    <TD width="150"> <b> Donn&eacute;es 3D </b> </TD> <TD> Attribut Hauteur </TD>
    </TR>
    <TR>
    <TD> <b> EGID du b&acirc;timent </b> </TD> <TD> 2037468 </TD>
    </TR>
    <TR>
    <TD> <b> Type de toit </b> </TD> <TD> Pelouse </TD>
    </TR>
    </TABLE>
    </font>
    </body>
    
    </html>
    Wednesday, February 6, 2013 9:49 AM

Answers

  • If this is in the UK, the datasource used for elevation calculations by the V7 control was recently updated and may produce different results than before. But both the pictures above look to be within the tolerance I would expect for positioning. The elevation calculation for BE scenes is only as precise as the elevation data source we use, and it's never better than 1m in accuracy and often much less.
    • Marked as answer by Ricky_Brundritt Wednesday, February 13, 2013 10:07 AM
    Thursday, February 7, 2013 10:03 PM
    Moderator
  • The elevation source is not always based on SRTM, and in general you shouldn't expect a sub-meter level of accuracy. The precision may vary from time to time as we add new sources of data. It could be the same bug cropping up this time, but we will publish new data from time to time and you should not assume any one source like SRTM.
    • Marked as answer by Ricky_Brundritt Wednesday, February 13, 2013 10:07 AM
    Tuesday, February 12, 2013 11:21 PM
    Moderator

All replies

  • If this is in the UK, the datasource used for elevation calculations by the V7 control was recently updated and may produce different results than before. But both the pictures above look to be within the tolerance I would expect for positioning. The elevation calculation for BE scenes is only as precise as the elevation data source we use, and it's never better than 1m in accuracy and often much less.
    • Marked as answer by Ricky_Brundritt Wednesday, February 13, 2013 10:07 AM
    Thursday, February 7, 2013 10:03 PM
    Moderator
  • Thank's a lot Duncan,

    My shape model use an elevation corresponding to an exact elevation (know with GPS measurements in building nodes points) minus the elevation of the X,Y corrresponding points in the SRTM elevation model (therefore a altimetric correction). 15 months ago, the result of the overlap of my models (in Geneva, Switzerland) was surprising precise (less than 10cm shifting) for all of the models (300 HTML files in different places).

    In that case, I don't understand while today it becomes less precise. Maybe the BE scenes elevation model has changed (Is it always the SRTM)?

    The last update has produced exactly the same shifting but Richard_Brundritt had validated that it was caused by a development oversight and a week later he solves the problem.

    Have a nice week.

    Antonin

    Monday, February 11, 2013 7:26 AM
  • The elevation source is not always based on SRTM, and in general you shouldn't expect a sub-meter level of accuracy. The precision may vary from time to time as we add new sources of data. It could be the same bug cropping up this time, but we will publish new data from time to time and you should not assume any one source like SRTM.
    • Marked as answer by Ricky_Brundritt Wednesday, February 13, 2013 10:07 AM
    Tuesday, February 12, 2013 11:21 PM
    Moderator