Custom geobasemaps not show in compiled application.

7 次查看(过去 30 天)
I have created a simple appdesigner application, which shows some geographic data on top of three types of basemaps. I have some custom basemaps, which I define at the startupFcn. The program runs correctly when run from Matlab, however, the custom maps (2 out of the 3) are not shown when the program is compiled as a standalone application. When changed to default basemaps it works even if it is compiled.
This is how I add the custom basemaps at the startupFcn:
% Add custom basemap 1
name = 'openstreetmap';
url = 'a.tile.openstreetmap.org';
copyright = char(uint8(169));
attribution = copyright + "OpenStreetMap";
addCustomBasemap(name,url,'Attribution',attribution)
% Add custom basemap 2
name = 'opentopomap';
url = 'a.tile.opentopomap.org';
copyright = char(uint8(169));
attribution = copyright + "OpenTopoMap";
addCustomBasemap(name,url,'Attribution',attribution)
The basemap is displayed using the following code:
geobasemap(app.geo_AX,'openstreetmap')
This is the GUI of the app:
How to used cumsom basemaps in standalone desktop apps?

采纳的回答

Jan Studnicka
Jan Studnicka 2021-7-7
As described here:
  • To use a custom basemap in a deployed application, when you call addCustomBasemap, you must set the value of the 'IsDeployable' name-value pair to true. You must set this name-value pair whether you call addCustomBasemap in your application or outside of your application.

更多回答(2 个)

Kathleen Holland
Kathleen Holland 2021-8-24
I have a set of map tiles in a local directory, not at a URL. When I try to do:
addCustomBasemap('myMaps','C:\Users\<userid>\Documents\maps\myMaps','Attribution','me');
I get an error saying
Warning: Unable to read map tiles from URL
'https://C:\Users\<userid>\Documents\maps\myMaps'. Invalid URL:
How can I install a custom set of map tiles that are resident on my computer?

Kelly Luetkemeyer
Kelly Luetkemeyer 2021-8-25
HI,
You can use a local http server to serve the map tiles. There are several implementations, such as Apache. You can search the File Exchange for some implementations in MATLAB. Here is one example, Web Server. You could also create your own using Java, Python, or Node. Also, you could even use a Docker container that has a web server.
The map tiles need to be in a specific folder structure. You can define this structure by using ${row/col/zoom}. For example:

类别

Help CenterFile Exchange 中查找有关 Geographic Plots 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by