One possible way to operationalize the requirement "When the point in the denser area, it has greater weight" is to weight each point by the number of neighbors within a specified distance:
nf = Nearest[pts];
radius = 50;
weightedData = WeightedData[pts, Length[nf[#, {All, radius}]] & /@ pts];
center = Mean[weightedData];
ListPlot[pts, Epilog -> {Red, PointSize[.02], Point[Mean[pts]], Green, Point @ center}]
With radius = 100
we get