# Distance-Based Weights

Distance-based weights are constructed using distance measures between all pairs of observations. The neighbor relation can be determined by a given

*distance band***,**so every other observation that falls within the distance band is considered as neighbors of one observation. Another way to determine neighbor relation is to find*K nearest neighbors**(***) for each observation.***KNN*For more information, please read: https://geodacenter.github.io/workbook/4b_dist_weights/lab4b.html

In order to avoid isolates (islands) that would result from too stringent a critical distance, the distance must be chosen such that each location has at least one neighbor. Such a distance conforms to a

*max-min*criterion, i.e., it is the largest of the nearest neighbor distances.function getMinDistancethreshold(String mapUid, Boolean isArc, Boolean isMile)

**Arguments**

Input Arguments | Type | Description |

mapUid | String | the unique map id |

isArc | boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

Value | Description |

Number | the minimum distance that makes sure each observation has at least one neighbor |

With the distance band, one can create a distance-based spatial weights using WINDOW function distance_weights()

Short version:

function getDistanceWeights(String mapUid, Number distBand,

Number power,

Boolean isInverse,

Boolean isArc,

Boolean isMile)

**Arguments:**

Input Arguments | Type | Description |

map_uid | String | the unique map id |

distBand | Number | the distance band/threshold that makes sure each observation has at least one neighbor |

power | Number | the power/exponent corresponds to the number of times the base (dist_band) is used as a factor. Default: 1. |

isInverse | Boolean | if apply inverse on distance value. Default: False. |

isArc | Boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | Boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

Value | Description |

WeightsResult | the weights structure for each observation. |

function getKnnWeights(String mapUid, Number k,

Number power,

Boolean isInverse,

Boolean isArc,

Boolean isMile)

**Arguments:**

Input Arguments | Type | Description |

mapUid | String | the unique map id |

k | Number | the k nearest neighbors |

power | Number | the power/exponent corresponds to the number of times the base (dist_band) is used as a factor. Default: 1. |

isInverse | Boolean | if apply inverse on distance value. Default: False. |

isArc | Boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | Boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

Value | Description |

WeightsResult | the weights structure for each observation. |

**Try it yourself in the playground (jsgeoda + deck.gl):**

****