Difference between revisions of "Linden Lab Official:Map API Reference"

From Second Life Wiki
Jump to navigation Jump to search
(Updated for version 2 of API)
 
(84 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== SLMap ==
{{Supported API}}
This class represents the map.
{{:API Portal/navigation|map}}
'''NOTE:''' See the [[Linden Lab Official:Map API Introduction#Release notes|Release Notes]] for information on new features and known issues.
__TOC__
<br clear="all"/>
== Global functions ==


=== Constructor ===
{| border="1" cellspacing="0" cellpadding="3" rules="all" class="apitable"
 
{{API Constructor|
SLMap (
HTMLElement container,
SLMapOptions options )
}}
 
Creates the map. The SLMapOptions argument is optional.
 
=== Methods ===
 
{| border="2" cellspacing="0" cellpadding="3" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:90%; empty-cells:show; "
|- bgcolor="#A7C1F2"
|- bgcolor="#A7C1F2"
! Method
!valign="top"| Function
! Return Value
!valign="top"| Return Value
! Description
!valign="top"| Description


|-
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| enterAndZoomAtSLCoord(  
|valign="top" class="signature"|
XYPoint coordinate,
SLMap(
int zoom)
[https://developer.mozilla.org/en/DOM/element HTMLElement] element)
 
|[[#Map|Map]]
|valign="top"| None
|Creates a new map inside the specified DOM element.
 
|valign="top"| Centers and zooms the map to the specified location.
 
|-
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin: 0;"| addMarker (
|valign="top" class="signature"|
Marker marker,  
gotoSLURL(
MapWindow mapWindow )
x Number,
y Number,
[[#Map|Map]] lmap)
|None
|Pans the map to display the specified inworld location.
|}


|valign="top"| None
== Objects ==


|valign="top"| Adds a marker. If the optional mapWindow argument is null, then clicking on the marker will not open a window.
=== Map ===
This class is the Leaflet class that represents the map. For more information, see [http://leafletjs.com/reference-1.0.2.html#map the Leaflet Map reference].


|-
{{API Constructor|  
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| removeMarker (Marker marker)
[http://leafletjs.com/reference-1.0.2.html#map Map] SLMap([https://developer.mozilla.org/en/DOM/element HTMLElement] container)
|valign="top"| None
}}
|valign="top"| Removes a marker.


|-
Creates a Leaflet map configured to display a map of Second Life.
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| removeAllMarkers () 
|valign="top"| None
|valign="top"| Removes all markers.


|-
The map is generated with a click event handler that calls '''gotoSLURL()''' to display a popup with a “Visit this location” link.
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| addMapWindow (MapWindow mapWindow, XYPoint coord)  
|valign="top"| None
|valign="top"| Adds a MapWindow to the map at specified coordinate.  


|-
==== Useful Methods ====
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| setCurrentZoomLevel (int zoom)
|valign="top"| None
|valign="top"| Sets the zoom level to specified zoom.


|-
For other methods, see [http://leafletjs.com/reference-1.0.2.html#map-method the Leaflet Map methods reference].
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| getCurrentZoomLevel ()
|valign="top"| None
|valign="top"|
Gets the current zoom level (1-6). See [http://secondlife.com/developers/mapapi/index.html#about_zoom about zoom levels].


|-
{| border="1" cellspacing="0" cellpadding="3" rules="all" class="apitable"
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| zoomIn ()
|- bgcolor="#A7C1F2"
|valign="top"| None
!valign="top"| Method
|valign="top"|
!valign="top"| Return Value
Zooms in on the map if the map is not already all the way zoomed in.
!valign="top"| Description


|-
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| zoomOut ()
|valign="top" class="signature"|
|valign="top"| None
[http://leafletjs.com/reference-1.0.2.html#map-setview setView](
|valign="top"|
[http://leafletjs.com/reference-1.0.2.html#latlng LatLng] center,
Zooms out on the map if the map is not already all the way zoomed out.
Number zoom)
 
|valign="top"| [http://leafletjs.com/reference-1.0.2.html#map Map]
|-
|valign="top"| Centers and zooms the map to the specified location.  Argument zoom must be an integer value. Note that [http://leafletjs.com/examples/crs-simple/crs-simple.html#this-is-not-the-latlng-youre-looking-for a LatLng is a (Y, X) coordinate], so coordinates passed as ''center'' should be in (Y, X) order.
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| panLeft ()
|}
|valign="top"| None
|valign="top"|
Pans the map to the left by 1/2 its width.
 
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| panRight ()
|valign="top"| None
|valign="top"|
Pans the map to the right by 1/2 its width.


|-
== Utility URLs ==
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| panUp ()
These map helper functions are available from the caps server. The JSON-like results return text that Javascript could eval(), but scripts coming from outside should parse them the "hard" way for safety.
|valign="top"| None
|valign="top"|
Pans the map to the up by 1/2 its width.  


|-
=== Region name from global coordinates ===
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| panDown ()
https<nowiki></nowiki>://cap.secondlife.com/cap/0/'''b713fe80-283b-4585-af4d-a3b7d9a32492'''?'''var'''=''varName''&'''grid_x'''=''xcoord''&'''grid_y'''=''ycoord''
|valign="top"| None
* '''var''' is arbitrary, for output formatting.
|valign="top"|
* '''grid_x''' is the region's global x coordinate as an integer.
Pans the map to the down by half its width.
* '''grid_y''' is the region's global y coordinate as an integer.


|-
'''Example'''
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| disableDragging ()
https://cap.secondlife.com/cap/0/b713fe80-283b-4585-af4d-a3b7d9a32492?var=region&grid_x=1000&grid_y=1000
|valign="top"| None
:Returns: <pre>var region='Da Boom';</pre>
|valign="top"|
Disables all dragging on the map. Note: panning controls will still work.


|-
=== Global coordinates from region name ===
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| enableDragging ()
https<nowiki></nowiki>://cap.secondlife.com/cap/0/'''d661249b-2b5a-4436-966a-3d3b8d7a574f'''?'''var'''=''varName''&'''sim_name'''=''RegionName''
|valign="top"| None
* '''var''' is arbitrary, for output formatting.
|valign="top"|
* '''sim_name''' is a region on the Second Life map.
Re-enables dragging on the map if it was disabled.  


|-
'''Example'''
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"|getViewportBounds ()
https://cap.secondlife.com/cap/0/d661249b-2b5a-4436-966a-3d3b8d7a574f?var=coords&sim_name=Da%20Boom
|valign="top"|Bounds
:Returns: <pre>var coords = {'x' : 1000, 'y' : 1000 };</pre>
|valign="top"|
Gets the viewport bounds. See [http://secondlife.com/developers/mapapi/index.html#about_coords about coordinates].
 
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| panOrRecenterToSLCoord (XYPoint coord, Boolean recenter = false)
|valign="top"| None
|valign="top"|
Pans the map to the given coordinate if it is currently in the viewport (in the user's view). Otherwise, recenters the map to the given coordinate.
 
The optional second argument specifies whether to center the given coordinate even it if is currently in the viewport.
 
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| getMapCenter ()
|valign="top"|XYPoint
|valign="top"| Returns the current map center. See [http://secondlife.com/developers/mapapi/index.html#about_coords about coordinates].
 
|-
|valign="top" style="font: 10pt courier; padding: 10px 10px 0 10px; margin:0;"| clickMarker (Marker marker)
|valign="top"| None
|valign="top"|
Simulates a clicking a marker. Will recenter the pan if its not currently in the viewport of the map.
 
|}

Latest revision as of 17:23, 13 December 2016

NOTE: This is an official Second Life API provided and documented by Linden Lab. Its use is subject to the API Terms of Use.

NOTE: See the Release Notes for information on new features and known issues.


Global functions

Function Return Value Description

SLMap( HTMLElement element)

Map Creates a new map inside the specified DOM element.

gotoSLURL( x Number, y Number, Map lmap)

None Pans the map to display the specified inworld location.

Objects

Map

This class is the Leaflet class that represents the map. For more information, see the Leaflet Map reference.

Constructor

Map SLMap(HTMLElement container)

Creates a Leaflet map configured to display a map of Second Life.

The map is generated with a click event handler that calls gotoSLURL() to display a popup with a “Visit this location” link.

Useful Methods

For other methods, see the Leaflet Map methods reference.

Method Return Value Description

setView( LatLng center, Number zoom)

Map Centers and zooms the map to the specified location. Argument zoom must be an integer value. Note that a LatLng is a (Y, X) coordinate, so coordinates passed as center should be in (Y, X) order.

Utility URLs

These map helper functions are available from the caps server. The JSON-like results return text that Javascript could eval(), but scripts coming from outside should parse them the "hard" way for safety.

Region name from global coordinates

https://cap.secondlife.com/cap/0/b713fe80-283b-4585-af4d-a3b7d9a32492?var=varName&grid_x=xcoord&grid_y=ycoord

  • var is arbitrary, for output formatting.
  • grid_x is the region's global x coordinate as an integer.
  • grid_y is the region's global y coordinate as an integer.

Example

https://cap.secondlife.com/cap/0/b713fe80-283b-4585-af4d-a3b7d9a32492?var=region&grid_x=1000&grid_y=1000
Returns:
var region='Da Boom';

Global coordinates from region name

https://cap.secondlife.com/cap/0/d661249b-2b5a-4436-966a-3d3b8d7a574f?var=varName&sim_name=RegionName

  • var is arbitrary, for output formatting.
  • sim_name is a region on the Second Life map.

Example

https://cap.secondlife.com/cap/0/d661249b-2b5a-4436-966a-3d3b8d7a574f?var=coords&sim_name=Da%20Boom
Returns:
var coords = {'x' : 1000, 'y' : 1000 };