ThinkGeo.com    |     Documentation    |     Premium Support

Virtual Earth and Current Extent

I created a map control using VirtualEarthOverlay and Pictometry, via GdiPlusRasterLayer. I am having issues when switching Bing to Pictometry and back to Bing. The map current extent is not the same when I switch from GdiPlusRasterLayer (mapUnit in meter and available at Zoomlevel 19-21) to VirtualEarthOverlay layer (available at zoomlevel 1-19). I tried add/removing the ClientZoomLevelScales and using the SyncClientZoomLevels with no success. Am I doing something wrong? Could you provide some codes to resolved the currentextent discrepencies. Thanks



Hi, ttd 



I have got your problem. But I am sorry to say that we can't recreate your problem. I don't know how you set the custom zoom levels for the map control of WebEdition. I guess the problems lies in the Custom Zoom Levels. Please send us the sample code and the data your web app consumes so that we can address it quickly and find the problem about it. If the data is too large and you could send it to support@thinkgeo.com and ask him to forward me. 



Sorry for the inconvenience caused to you. 



Thanks, 

Khalil



Attached is the sample app. I didn't includes the ThinkGeo webedition which is version 3.1.388. As you can see, when I switch from the Aerial to Bing, the extent is not the same. Please advise



TestAerial.zip (232 KB)

Hi, tdd 
  
 Thanks for your code. I think I have got your idea. In your web app, there exists two different projections in one map control, and I think this is the reason for the problem you have encountered.  Another thing is that we only support 20 ZoomLevels and VirtualEarthOverlay only support 19 ZoomLevels  by default in WebEdition product. 
  
 Thanks, 
 Khalil

Using the mulitple projections should not be cause of it. I have seen Thinkgeo samples with multiple projections. I think it's more on the 20 zoomlevel. That being said, what should be the work around? Are you saying this not feasible with webedition?



Hi, tdd



Sorry for that. Maybe I don’t explain it clearly. If you have two projections and we can’t synchronize the Map1.CurrentExtent and that’s the reason why you can’t get the extent after switch back. So here is a work around for you. Please check out.

I just modify the Default page and set GdiPlusRasterLayer  is available at ZoomLevel 19-21. And VirtualEarthOverlay has fixed zoom levels from  ZoomLevle01 to ZoomLevel19.



If I misunderstand your meaning, please correct me. Or if you still have problems about it also please let me know.



Thanks,



Khalil

 



001_TestAerial.zip (155 KB)

Thank you for the sample code. For now, I can’t upgrade to Webedition 4.0. Thus, I can’t use the ManagedProj4Projection reference in your test project.  
  
 I was able to resolve it by using the map extent GetCenterPoint(). However, I am getting sporadic issue where the Pictometry doesn’t display on the map. Both the jpg and jgw files for the GdiPlusRasterLayer layer are created. There’s no errors or logs anywhere.  
  
 I guess my is two folds:  
 1. How can I force the map control to render the image via the GdiPlusRasterLayer ( I tried the Map1.CustomOverlays.Clear and removing/re-adding the GdiPlusRasterLayer  with no success) 
 2. If it’s something I am doing wrong, How could I better trap/handle the error. Right now, there’s error on client-side or server-side 


Sorry for making you feel confused. The ManagedProj4Projection object is just used for test and you could delete or comment it  optionally and try it again. It has the same functionality except it’s managed. 
  
 That sounds so weird about you have mentioned that even though you have cleared it and re-adding LayerOverlay to it  without success. I suggest you to check whether you have set the right MapUnit and CurrentExtent. I have set up another test app and it works well. You could refer to “LoadAStandardImageWithWorldFile” sample in our installed samples which you could find its source code at “Samples\SatelliteImage\LoadAStandardImageWithWorldFile.aspx”. 
  
 If the error occurs in your web app, please provide us the stack trace or some other exception messages. 
  
 Thanks, 
  
 Khalil