Maps API site http://developer.yahoo.com/maps/
Documentation
Map Image API from Yahoo! Maps
Simple API Maps
AJAX API Maps
Examples from Zamples
somewhat Related: Silverlight based mapping control DeepEarth
Collection of unedited thoughts and bits of knowledge I can't seem to remember
Search This Blog
Wednesday, December 31, 2008
Tuesday, December 30, 2008
Monday, December 29, 2008
Creating Universial Zoom levels
Creating Universial Zoom levels to use across Google/ Yahoo / and Virutal Earth APIs
From http://code.davidjanes.com/blog/2008/11/08/switching-between-mapping-apis-and-universal-map-levels/
Table of map zoom level equivalents
Google Maps and Virtual Earth the same zoom levels, excepting that Google has a level 0. Bigger numbers are closer to the ground, smaller numbers are up into space. Yahoo Maps has fewer levels to work with - it doesn’t let you drill down below the block level. Yahoo numbers its zoom levels the opposite of Google and Virtual Earth, small numbers being closer to the ground and so on and so forth.
To allow seamless switching of data between APIs, I propose here universal zoom levels, which can be used as-is on any of these mapping APIs. To avoid confusion of which type of zoom level one is using, we use the negative number range for universal zoom levels. As Google and Microsoft are using the same zoom levels, I’ve decided that the universal zoom levels should simply be the inverse of their zoom levels, bounded by (-1, -19) inclusive.
Conversion Formulae
Here’s Javascript to convert between your favorite mapping API’s zoom levels and universal zoom levels. Note that all to_native functions accept positive numbers as-is.
zoom = {
google : {
to_univeral : function(native) {
return Math.min(-1, -native);
},
to_native : function(universal) {
return universal > 0 ? universal : -universal;
}
},
virtual_earth : {
to_univeral : function(native) {
return Math.min(-1, -native);
},
to_native : function(universal) {
return universal > 0 ? universal : -universal;
}
},
yahoo : {
to_univeral : function(native) {
return Math.min(-1, native - 18);
},
to_native : function(universal) {
return universal > 0 ? universal : Math.max(universal + 18, 1);
}
}
};
End Notes
A truly universal zoom level would just use altitude; dealing with a simple integer is easier and less complication prone though. MapQuest is not included in this post as its tiles do not line up with the other APIs.
From http://code.davidjanes.com/blog/2008/11/08/switching-between-mapping-apis-and-universal-map-levels/
Table of map zoom level equivalents
Google Maps and Virtual Earth the same zoom levels, excepting that Google has a level 0. Bigger numbers are closer to the ground, smaller numbers are up into space. Yahoo Maps has fewer levels to work with - it doesn’t let you drill down below the block level. Yahoo numbers its zoom levels the opposite of Google and Virtual Earth, small numbers being closer to the ground and so on and so forth.
To allow seamless switching of data between APIs, I propose here universal zoom levels, which can be used as-is on any of these mapping APIs. To avoid confusion of which type of zoom level one is using, we use the negative number range for universal zoom levels. As Google and Microsoft are using the same zoom levels, I’ve decided that the universal zoom levels should simply be the inverse of their zoom levels, bounded by (-1, -19) inclusive.
Conversion Formulae
Here’s Javascript to convert between your favorite mapping API’s zoom levels and universal zoom levels. Note that all to_native functions accept positive numbers as-is.
zoom = {
google : {
to_univeral : function(native) {
return Math.min(-1, -native);
},
to_native : function(universal) {
return universal > 0 ? universal : -universal;
}
},
virtual_earth : {
to_univeral : function(native) {
return Math.min(-1, -native);
},
to_native : function(universal) {
return universal > 0 ? universal : -universal;
}
},
yahoo : {
to_univeral : function(native) {
return Math.min(-1, native - 18);
},
to_native : function(universal) {
return universal > 0 ? universal : Math.max(universal + 18, 1);
}
}
};
End Notes
A truly universal zoom level would just use altitude; dealing with a simple integer is easier and less complication prone though. MapQuest is not included in this post as its tiles do not line up with the other APIs.
Mapping APIs
Some interesting Mapping API found on stack Overflow
Geonames
The GeoNames geographical database is available for download free of charge under a creative commons attribution license. It contains over eight million geographical names and consists of 6.5 million unique features whereof 2.2 million populated places and 1.8 million alternate names. All features are categorized into one out of nine feature classes and further subcategorized into one out of 645 feature codes. (more statistics ...).
The data is accessible free of charge through a number of webservices and a daily database export. GeoNames is already serving up to over 11 million web service requests per day.
WCF example from CodeProject: GeoNames .NET WCF Client
Topocoding
This service is an extension of existing mapping APIs in Javascript. It serves for querying the altitude information
and other topological information about places on the Earth.
The topo data is a combination of SRTM and GTOPO30, its typical horizontal resolution is about 90 meters. The data includes all continents but Antarctica.
Currently the service is in the beta stage of testing, the throughput of the shared server might be limited.
For business users, we offer paid servers with dedicated capacity.
EarthTools.org
Here's a collection of webservices for finding out geographical-related information. There are currently three services available for finding the time zone or local time, the sunrise and sunset times, and the elevation/height above sea level at a given latitude and longitude.
Geonames
The GeoNames geographical database is available for download free of charge under a creative commons attribution license. It contains over eight million geographical names and consists of 6.5 million unique features whereof 2.2 million populated places and 1.8 million alternate names. All features are categorized into one out of nine feature classes and further subcategorized into one out of 645 feature codes. (more statistics ...).
The data is accessible free of charge through a number of webservices and a daily database export. GeoNames is already serving up to over 11 million web service requests per day.
WCF example from CodeProject: GeoNames .NET WCF Client
Topocoding
This service is an extension of existing mapping APIs in Javascript. It serves for querying the altitude information
and other topological information about places on the Earth.
The topo data is a combination of SRTM and GTOPO30, its typical horizontal resolution is about 90 meters. The data includes all continents but Antarctica.
Currently the service is in the beta stage of testing, the throughput of the shared server might be limited.
For business users, we offer paid servers with dedicated capacity.
EarthTools.org
Here's a collection of webservices for finding out geographical-related information. There are currently three services available for finding the time zone or local time, the sunrise and sunset times, and the elevation/height above sea level at a given latitude and longitude.
Wednesday, December 24, 2008
LeoCad 3rd party libraries
http://www.dxtre3d.com/temp/3dsftk.zip
http://www.imagemagick.org/download/delegates/libjpeg-6b.zip
On my skydrive
Use these specific versions. Ziplib 1.1.4 is needed not 1.2.3+
http://www.imagemagick.org/download/delegates/libjpeg-6b.zip
On my skydrive
Use these specific versions. Ziplib 1.1.4 is needed not 1.2.3+
Thursday, December 18, 2008
Research: Creating VB6 compliant OCX with .net
From Calvin Hsia's WebLog
MAKING .NET CONTROLS - OCX VB6 COMPLIANT
Similar article: how to make ocx for FoxPro using .Net
The Visual Basic Team
Interop Roadmap – UserControls, MDI, and Data
InteropUserControl.zip
Using App.config with -interop-forms-toolkit in VB6
Interop Forms Toolkit - Your New Best Friend
MAKING .NET CONTROLS - OCX VB6 COMPLIANT
Similar article: how to make ocx for FoxPro using .Net
The Visual Basic Team
Interop Roadmap – UserControls, MDI, and Data
InteropUserControl.zip
Using App.config with -interop-forms-toolkit in VB6
Interop Forms Toolkit - Your New Best Friend
Tuesday, December 16, 2008
Setup SVN server the easy way!
Cool VisualSVN
http://www.visualsvn.com/server/
Also
RapidSVN - You can use RapidSVN on a memory stick as a graphical SVN client.
http://rapidsvn.tigris.org/
Very cool stuff
http://www.visualsvn.com/server/
Also
RapidSVN - You can use RapidSVN on a memory stick as a graphical SVN client.
http://rapidsvn.tigris.org/
Very cool stuff
Monday, December 8, 2008
Installing Esker API Components
For Esker DeliveryWare Platform version 3.5
CD 1
This is only required for a development or client machine where Esker DeliveryWare platform server is not installed.
CD 1
- Select Server components
- Select Esker API Components
This is only required for a development or client machine where Esker DeliveryWare platform server is not installed.
Saturday, December 6, 2008
Use SkyDrive to add live app updates
UPDATE: 5/6/2009
SKyDrive now changes URLs to files several times a day.
I altered my design by fetching the URL of the folder containing my update file and then parsing out the file URL from there. Bit more work but I can still host updates from a Skydrive folder.
Microsoft is offering large amt of disk space with an Windows Live acount (25 GB) where you can host files or any type for in private, shared or public folders.
Uploaded files get a GUID like URL. It you re-load the file it will get a new URL! This caused me abit of grief trying to implement an live update feature in my Digital Rockhound's companion application. To solve this problem, I decided to add meta content name value pairs for current version of the application and the URL path where the update is located on SkyDrive. My application simplies downloads a specific blog entry, reads the version and path from the meta conent and then determines if the user has the latest version. A bonus of this method, is with site tracking, I can tell how many users are updating the software and when. Nice to have these stats.
As of 12/06/2008 Microsoft has not published documentation for SkyDrive API. I hope they do so soon. (Lets see how SkyDrive API searches this blog entry generates...)
SKyDrive now changes URLs to files several times a day.
I altered my design by fetching the URL of the folder containing my update file and then parsing out the file URL from there. Bit more work but I can still host updates from a Skydrive folder.
Microsoft is offering large amt of disk space with an Windows Live acount (25 GB) where you can host files or any type for in private, shared or public folders.
Uploaded files get a GUID like URL. It you re-load the file it will get a new URL! This caused me abit of grief trying to implement an live update feature in my Digital Rockhound's companion application. To solve this problem, I decided to add meta content name value pairs for current version of the application and the URL path where the update is located on SkyDrive. My application simplies downloads a specific blog entry, reads the version and path from the meta conent and then determines if the user has the latest version. A bonus of this method, is with site tracking, I can tell how many users are updating the software and when. Nice to have these stats.
As of 12/06/2008 Microsoft has not published documentation for SkyDrive API. I hope they do so soon. (Lets see how SkyDrive API searches this blog entry generates...)
Wednesday, December 3, 2008
Change Where statment for report
Right-click on report designer
>>select reports menu
>>>> Selection Formula
>>>>>>Row
In designer type of select criteria
>>select reports menu
>>>> Selection Formula
>>>>>>Row
In designer type of select criteria
Add new table to report schema
use Database Export, browse to new table and click move to right
Click links table and correct table for new table
Click links table and correct table for new table
Changing cached database name in Report
In VSS.net 2003 with a crystal 9 report open.
Use Field explorer, expand to a table, right-click and select Set Datasource location
Use Field explorer, expand to a table, right-click and select Set Datasource location
Crystal Reports sucks
For VSS.NET 2003 and crystal 9
You must apply SP1, SP2, SP3 to fix a host of issues including table alias not handled properly when crystal renders its internal report query.
Also: If table schema has changed for an existing report, connect to database with current schema and use database expert to sync cached schema in report to actual schema.
Why anyone stills uses this product is beyond me? At least editor ingration into VSS.NET makes it 2% less painful.
Crystal 9 will connect to SQL Server 2008 database.
You must apply SP1, SP2, SP3 to fix a host of issues including table alias not handled properly when crystal renders its internal report query.
Also: If table schema has changed for an existing report, connect to database with current schema and use database expert to sync cached schema in report to actual schema.
Why anyone stills uses this product is beyond me? At least editor ingration into VSS.NET makes it 2% less painful.
Crystal 9 will connect to SQL Server 2008 database.
Subscribe to:
Posts (Atom)