[20:29 BST] And now it doesn’t exist at all. Hoping they’re doing something other than ignoring it…
[20:03 BST] It’s not fixed. The file now exists, but doesn’t have any region names. So it’ll still crash out. Boo LL people.
[20:00 BST] Apparently it’s fixed, at least for now. Yay LL people!
LL seem to have pulled the MapAPI (yes, I know that’s a 404. That’s the problem.) without any form of announcement. So much for their blog.
Some research indicates that they have intended to do so for a while, and were going to make a wide announcement before doing so. Breaking it does not count as a wide announcement.
As such, AjaxLife (which was heavily dependent on the API for the map functions, among others) will no longer function. Furthermore, the replacement lacks an important function to make it work, is still in beta, still has assorted voice-map related things hardcoded in.
Additionally, I don’t want “Powered by Google” stuck in the corner of AjaxLife. Especially since nothing was wrong with the old one - well, at least, not my fixed version of the old one (now also broken due to loss of its data source).
So, Linden Lab. Until you do something about this, AjaxLife is dead.
What a pity! AjaxLife is really a piece of work, I hope it will be back soon, well done, Katharine.
Argh! Linden Lab, will you PLEASE take the “Apple route” of production instead of the “Microsoft route”? (For non-techies, I mean, don’t throw away stuff, and if so, notify 6 months ahead of doing it, and do extensive testing before rolling out new features/replacing old features with new ones…). They tell everyone “Go! Go! Go! Use our open-source codes, APIs, and stuff!”, yet they later on add a * saying “LL holds the right to trash away open-source stuff, and to treat customers like crap”.
Really annoys me. Way to go, Linden.
Arrrr no! All your brilliant hard work…..
Ciao Katharine, the map apis are back right now:
http://secondlife.com/apps/mapapi/
Yes you did not dream thou, i saw them 404 down too!
time to get ajaxlife back to… life!
They put the code back up, but didn’t put the useful bit back - i.e. the list of sim names.
What they have now is more or less what I had before. It’s not at all useful.
grrrrr. let’s be hopeful. maybe they are just rolling a new version and doing it the ‘hard way’. Put it down then slowly back.
In any case I dropped them an email (mapapi@secondlife.com), we’ll see… finger crossed. and thanks for your work.
http://wiki.secondlife.com/wiki/MapAPI
SL Maps API is changed, see above
Is this relevant to your problem maybe ?
Actually to me it looks like the generator that creates that script (to include the sim names/coordinates) simply broke. Most likely due to the number of sim names exceeding what the generator can handle.
Philll, I’m aware it changed. I found that after searching JIRA a bit, and also found that they would make a “wide announcement” before killing the old one. However, since the new one fails to include the sim names, it’s not very helpful to me. And, as I said, I refuse to have “Powered by Google” in the corner of my map.
It seems possible that it’s broken. But it’d be nice if LL actually told someone that.
Never ceases to amaze me how communicating can be so hard for companies like LL.
Thumbs up, Katharine! Hope you’ll be able to revive AjaxLife.
Argh. Fix it! >_>
Or….get LL to fix it…..or……….something?
*dies of SL withdrawal during vacation*
Yeah, announcements would be nice… our Music Map (http://cruxy.com/sl/map) has been down for days without us noticing and WITH us sending clients, users, etc to check out, well… nothing but an empty map. That’s no fun.
Heading over to wiki for new API info…
So, they seemed to have removed the SLPoint region name resolution support. Its boldly NOT IMPLEMENTED anymore, and it used to be. I hate when features disappear.
Okay, so I’ve created a hack for the lack of SLPoint support using a region lookup service Linden provides. You only get resolution to the region, but its better than nothing.
function addRegionMarker (regionName, storeImage, popupCode)
{
var SLMap = this;
// Add a dynamic script to get this region position, and then add a market and popup there
var varName = “slRegionPos_result”;
var scriptURL = “https://cap.secondlife.com/cap/0/d661249b-2b5a-4436-966a-3d3b8d7a574f?var=” + varName + “&sim_name=” + encodeURIComponent(regionName);
// Once the script has loaded, we use the result to center the map on the position
var onLoadHandler = function ()
{
if (slRegionPos_result.error)
{
//alert(”The region name ‘” + regionName + “‘ was not recognised.”);
}
else
{
var x = slRegionPos_result.x;
var y = slRegionPos_result.y;
var pos = new XYPoint(x, y);
yellow_dot_image = new Img(storeImage,60,45);
yellow_icon = new Icon(yellow_dot_image);
all_images = [yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon];
marker = new Marker(all_images, pos);
mapWindow = new MapWindow(popupCode);
mapInstance.addMarker(marker,mapWindow);
}
};
slAddDynamicScript(scriptURL, onLoadHandler);
}
This should work to allow you to specify position in the region:
function addRegionMarker (regionName, rx,ry, storeImage, popupCode)
{
var SLMap = this;
// Add a dynamic script to get this region position, and then add a market and popup there
var varName = “slRegionPos_result”;
var scriptURL = “https://cap.secondlife.com/cap/0/d661249b-2b5a-4436-966a-3d3b8d7a574f?var=” + varName + “&sim_name=” + encodeURIComponent(regionName);
// Once the script has loaded, we use the result to center the map on the position
var onLoadHandler = function ()
{
if (slRegionPos_result.error)
{
//alert(”The region name ‘” + regionName + “‘ was not recognised.”);
}
else
{
var x = slRegionPos_result.x + (rx/256.0);
var y = slRegionPos_result.y + (ry/256.0);
var pos = new XYPoint(x, y);
yellow_dot_image = new Img(storeImage,60,45);
yellow_icon = new Icon(yellow_dot_image);
all_images = [yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon, yellow_icon];
marker = new Marker(all_images, pos);
mapWindow = new MapWindow(popupCode);
mapInstance.addMarker(marker,mapWindow);
}
};
slAddDynamicScript(scriptURL, onLoadHandler);
}
Thank. That worked great!